使用PuTTY生成ssh-rsa密钥连接Ubuntu16.04时遇Server refused our key错误
解决Ubuntu 16.04 SSH连接时“Server refused our key”的问题
别担心,这个问题在使用PuTTY RSA密钥连接老版本Ubuntu时很常见,大概率是权限配置或者服务器端的小问题,咱们一步步排查解决:
1. 检查服务器端~/.ssh目录和密钥文件的权限
SSH对密钥相关文件的权限要求非常严格,这是最容易踩坑的地方。先通过密码登录到你的Ubuntu服务器,执行以下命令:
# 设置.ssh目录权限为700(只有所有者能读写执行) chmod 700 ~/.ssh # 设置authorized_keys文件权限为600(只有所有者能读写) chmod 600 ~/.ssh/authorized_keys # 确保文件和目录属于你的用户,替换成你的用户名 chown your_username:your_username ~/.ssh -R
可以用ls -ld ~/.ssh和ls -l ~/.ssh/authorized_keys确认权限和所有者是否正确。
2. 确认authorized_keys里的公钥格式正确
你用PuTTY生成的ssh-rsa开头的公钥,必须完整无错地复制到服务器的~/.ssh/authorized_keys文件中:
- 打开PuTTYgen,复制窗口里显示的完整公钥文本(包括结尾的注释,比如
rsa-key-xxxxxx) - 在服务器上用
nano ~/.ssh/authorized_keys打开文件,把公钥粘贴进去,确保没有换行、空格错误或者多余字符。
3. 检查SSH服务器的配置
Ubuntu 16.04的sshd默认支持RSA密钥,但有可能配置被修改了。打开配置文件:
sudo nano /etc/ssh/sshd_config
找到以下配置项,确保它们的设置如下(如果被注释了就去掉前面的#):
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
修改后重启SSH服务生效:
sudo service ssh restart
4. 验证PuTTY的私钥配置
在PuTTY的会话设置里:
- 左侧导航到
Connection -> SSH -> Auth,点击Browse选择你生成的.ppk私钥文件,别选错了 - 可以在
Connection -> Data里设置自动登录的用户名,避免手动输入错误导致认证失败
5. 查看服务器日志定位具体问题
如果前面的步骤都没解决,查看服务器的认证日志找线索:
sudo tail -f /var/log/auth.log
然后尝试用PuTTY连接,日志里会显示拒绝密钥的具体原因,比如“Permissions 0755 for '/home/user/.ssh' are too open”或者“invalid key format”,根据日志提示针对性解决。
内容的提问来源于stack exchange,提问作者ashishcompwiz
相关产品推荐
相关产品推荐

