关键词:VSCode SSH、SSH 无法免密登录、SSH 免密登录失败
1. sshd 配置文件检查
确保 /etc/ssh/sshd_config 中公钥登录已开启:
1 | PubkeyAuthentication yes |
2. 生成公钥并上传到服务器
2.1 命令行方式(推荐)
1 | ssh-copy-id 用户名@ip地址 |
2.2 手动方式
找到本地的 ~/.ssh/id_rsa.pub,将其内容复制到服务器的 ~/.ssh/authorized_keys。
确保是普通用户新建 ~/.ssh/authorized_keys(不要用 root):
1 | mkdir ~/.ssh |
复制也好、上传文件也罢,只要将本地 id_rsa.pub 的内容写入服务器 authorized_keys 即可。
3. Debug:免密登录失败排查
主要根据 sshd 输出信息定位问题。
调整日志级别
服务器端 /etc/ssh/sshd_config:
1 | LogLevel DEBUG |
服务端查看日志
1 | sudo tail -f -n 500 /var/log/auth.log | grep sshd |
客户端调试模式
1 | ssh -vvv 192.168.0.1 |
常见错误
当出现 authorized_keys': Permission denied 时,通常有两种原因:
1 | sshd[28422]: debug1: Could not open authorized keys '/home/mi/.ssh/authorized_keys': Permission denied |
3.1 权限不对
1 | chmod 700 ~/.ssh |
3.2 用 root 新建了 .ssh 或 authorized_keys
请删除 .ssh 及 authorized_keys,确保是普通用户重新创建。