我创建了密钥对使用puttygen.exe
(客户端是Windows 8).在服务器(Ubuntu 12.04.3 LTS)上,我已将我的公钥放入~/.ssh/authorized_keys
.公钥是这样的:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAopfM6RHOgnuc4Aftn3t4k5UIAT3StCAbn/vg/IMbphbXadshC+79sIlRq3P4zGzMjFTP4hKnzu6ehLV5lmj/qorq3SKT+bPO5Qrac3VbIlrGvuBFDDjP82I2Hwg3HzlsFTstqk++KToapaTYZ7jENEYyPl2wnzITJnt//+4U1o6juoXTKgdNE02hHnRZyHOV/bnkZyJJCEwJv5U0eXSThQnhmXtUxGT8U0HQNFiXfqIIVllhWiCnyrhhIaKz/CIJNAd2VmzyJzQtJtTQX8aWSNVrZju6Sv2/RncTNvsACdNgjjh/FH8PQXaep00jlJ3MOdsC8vz6VSPFbh6iKy1oLQ== rsa-key-20131231
所以这是正确的(一行,没有评论,从ssh-rsa开始,等等)
.ssh
dir权限级别为700,authorized_keys文件权限为600.我尝试登录的实际用户拥有的目录和文件.
当我尝试连接时,我正在收到'server refused our key'
服务器并要求输入密码.就这样./var/log/auth.log
尝试使用密钥登录时未记录任何内容.
我到处寻找,所有文章和提示都提到为文件/目录设置chmod 600和700并正确格式化密钥.我已经做了所有这些仍然'拒绝我们的关键'错误,我没有想法.
添加一些想法作为其他答案有帮助,但不完全适合.
首先,如接受的答案中所述,编辑
/etc/ssh/sshd_config
并设置日志级别:
LogLevel DEBUG3
然后尝试进行身份验证,当它失败时,查找日志文件:
/var/log/secure
它会有你想要的错误.
好吧,我的钥匙上有一个小错字.显然,当粘贴到文件时,第一个字母被切断,它以sh-rsa而不是ssh-rsa开头.
nrathathaus - 你的答案非常有帮助,非常感谢,这个答案归功于你:)我喜欢你说并在sshd_conf中设置:
LogLevel DEBUG3
通过查看日志,我意识到sshd正确读取密钥但由于标识符不正确而拒绝它.
在我的情况下,我不得不将/ home/user的权限从0755更改为0700.
在我的情况下,是一个权限问题.
我将日志级别更改为DEBUG3
,在/var/log/secure
我看到这一行:
Authentication refused: bad ownership or modes for directory
谷歌搜索,我发现这篇文章:
https://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/
chmod g-w /home/your_user chmod 700 /home/your_user/.ssh chmod 600 /home/your_user/.ssh/authorized_keys
基本上,它告诉我:
摆脱w
用户主目录的组权限
更改权限700
的的.ssh
目录
更改权限600
的的authorized_keys
文件.
这很有效.
另一件事是,即使我启用root登录,我也无法开始root
工作.更好地使用其他用户.