SSH
安装SSH(可选,多数Debian默认已经安装)
Step 1:更新本地软件库&安装SSH
允许用户 root 登录(可选,如果root不可登录时)
将/etc/ssh/sshd_config中#PermitRootLogin更改为 PermitRootLogin yes,修改完毕后,按esc键,输入:wq后按enter键执行保存。
Step 3:重启SSH服务
使用密钥登录
原理(SSH 公钥验证机制) 登录时不传递密码,而是使用一对「非对称金钥」:
- 一把叫做:公钥(Public Key):存在你的电脑上(WindTerm/Putty/本机)
- 一把叫做:私钥(Private Key): 存放在服务器上(~/.ssh/authorized_keys)
Step 1: 建立 .ssh目录并设定授权
Step 2: 在软件 PuTTYgen 生成金钥
生成金钥建议:
- 在
Type of key to generate:中选择EdDSA - 在
Cuve to use for generating this key:后选择Ed25519(255 bits) - (可选)如果你想保护私钥,还可以在
Key Passphrase:和Confim passphrase中输入密码,使用SSH客户端登录时会用到此密码. - 最后点击 Generate
Step 3: 并将公钥内容贴在 Debian 上,并设定权限
复制 Putty Key generator 软件上 Key中 Public key for pasting into OpenSSH authorized keys file: 下面的内容后,在Debian中输入
清空该文件所有内容,最后按 i 再按鼠标右键贴上之前的公钥内容.
最后按 Esc 后输入 :wq! 后按Enter键
最后在Debian上更改更改权限
其他问题:
SSH 服务器是否允許金钥登录?
查看 /etc/ssh/sshd_config 中的這些設定是否正確:
可用下面命令确认(直接查关键字):
如有修改,需要重启SSH:
如果我使用用户 root私钥登入,可以被看出來嘛?
可以,在 Debian 上,登入时的 SSH 金钥记录会被记录在系统日志中,你可以这样查看:
或者:
如果只想看用户 root 的 登入成功日志:
日志中的关键字含义:
| 日志内容 | 说明 |
|---|---|
| Accepted password for root | 表示用 密碼 登入 |
| Accepted publickey for root | 表示用 SSH 金鑰 登入 |
| Failed password for root | 表示密碼登入 失敗 |
| Authentication refused | 拒絕登入(可能因金鑰不符、無權限等) |
禁用密码登录
使用下面命令查看当前SSHD配置是否接受密码登录
禁用密码登录
将 PasswordAuthentication yes 更改为 PasswordAuthentication no
然后重启SSHD服务