我正在尝试使用密钥文件而不是用户名/密码来设置ssh身份验证。客户端是运行PuTTY的Windows盒,服务器是Ubuntu 12.04 LTS服务器。
我下载了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中的连接> SSH>身份验证下,我输入了它在客户端上生成的私钥的路径,并保存了会话设置。
我用重新启动了ssh服务器
sudo service ssh restart
现在,如果我将配置文件加载到PuTTY中(我确认私钥仍在“连接”>“ SSH”>“身份验证”中,并且路径正确)并运行该配置文件,它会说
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]
sshd: error: key_read: uudecode AAAAB3N
错误发生了什么auth.log
呢?