我正在尝试使用密钥文件而不是用户名/密码来设置SSH身份验证。客户端是运行PuTTY的Windows机器,服务器是一个Ubuntu 12.04 LTS服务器。
我下载了puttygen.exe并生成了一对密钥。在/etc/ssh/sshd_config中,我有这一行:
在我的客户公钥文件上写着这个:
我复制了从“ssh-rsa AAA”到“my@email.address.com”的部分,并将其放入了我的服务器上的文件
我尝试将公钥放在位于目录
我发现错误可能会通过将密钥放在用户的主文件夹之外的位置来解决,但这只在主文件夹加密时有用,而这个主文件夹没有被加密。
我还尝试生成了一个 4096 位的密钥,想着也许 1024 位太短了。
我该如何让这个工作起来?谢谢!
Google告诉我
我下载了puttygen.exe并生成了一对密钥。在/etc/ssh/sshd_config中,我有这一行:
AuthorizedKeysFile %h/.ssh/authorized_keys
在我的客户公钥文件上写着这个:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "my@email.address.com"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
AV1pKxs=my@email.address.com
---- END SSH2 PUBLIC KEY ----
我复制了从“ssh-rsa AAA”到“my@email.address.com”的部分,并将其放入了我的服务器上的文件
~/.ssh/authorized_keys
(位于我的个人家目录中)。在PuTTY的连接设置中,我在 Connection > SSH > Auth 中输入了客户端生成的私钥路径,并保存了会话设置。
我使用以下命令重新启动了ssh服务器:
sudo service ssh restart
现在如果我在PuTTY中加载配置文件(我确认私钥仍在Connection > SSH > Auth中,路径也是正确的),然后运行该配置文件,它会显示
Server refused our key
我尝试将公钥放在位于目录
./ssh/authorized_keys/
下的文件中,但没有帮助,所以我使用了 ./ssh/authorized_keys
作为文件,把密钥粘贴进去。我还尝试在服务器上生成了一对私钥/公钥,并将公钥放在 ./ssh/authorized_files
中,在客户端的 PuTTY 中加载私钥。重启服务器也没有帮助。我发现错误可能会通过将密钥放在用户的主文件夹之外的位置来解决,但这只在主文件夹加密时有用,而这个主文件夹没有被加密。
我还尝试生成了一个 4096 位的密钥,想着也许 1024 位太短了。
我该如何让这个工作起来?谢谢!
编辑:
好的,/var/log/auth.log
中写着:sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh
Google告诉我
~/.ssh/
应该是700,~/.ssh/authorized_keys
应该是600,所以我按照这样做了。现在/var/log/auth.log
显示:sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]
/var/log/auth.log
非常有帮助,谢谢 =) - kot-da-vinci