我正在尝试使用密钥文件而不是用户名/密码来设置 ssh 身份验证。客户端是运行 PuTTY 的 Windows 机器,服务器是 Ubuntu 12.04 LTS 服务器。
我下载了 puttygen.exe 并让它生成了一个密钥对。在/etc/ssh/sshd_config我有这一行:
AuthorizedKeysFile %h/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
在我客户的公钥文件上,它说:
---- 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 ----
Run Code Online (Sandbox Code Playgroud)
我将部分从“ssh-rsa AAA”复制到“my@email.address.com”并将其放入~/.ssh/authorized_keys我的服务器上的文件中(在我自己的主文件夹中)。在连接 > SSH > Auth 下的 PuTTY 中,我输入了它在我的客户端上生成的私钥的路径并保存了会话设置。
我重新启动了 ssh 服务器
sudo service ssh restart
Run Code Online (Sandbox Code Playgroud)
现在,如果我在 PuTTY 中加载配置文件(我验证了私钥仍在连接 > SSH > Auth 中并且路径正确)并运行配置文件,它会说
Server refused our key
Run Code Online (Sandbox Code Playgroud)
我尝试将公钥放在目录下的文件中, ./ssh/authorized_keys/但这没有帮助,所以我将其./ssh/authorized_keys用作文件,将密钥粘贴在其中。我还尝试在服务器上生成一个私钥/公钥对,将公钥放入./ssh/authorized_files并在我的客户端的 PuTTY 中加载私钥。重新启动服务器也没有帮助。 …