- 在我的计算机上使用 puttygen 创建公钥/私钥。
- 将公钥放在服务器上的 .ssh/authorized_keys 文件夹中
- 设置 pageant.exe 以在我的计算机上使用 pk。
- 当我运行 pageant 并使用 putty 连接时,它仍然要求我输入密码。
我错过了什么?
我确实做了:在 .ssh 文件夹上 chmod 700 在 authorized_keys 文件上 chmod 600
谢谢!
答案1
检查 Linux 服务器上的 /var/log/secure 或 /var/log/auth,了解密钥不被接受的原因。
另外,.ssh 目录是否位于您用于连接的用户的主目录中(并归该用户所有)?
如果您想以 root 用户身份连接,则可能在 /etc/ssh/sshd_config 中禁用它。
答案2
请注意,必须在 SSH 服务器配置中启用公钥身份验证(通常/etc/ssh/sshd_config
)。检查以下行:
RSAAuthentication yes
然后重新启动 SSH 服务器。
如果这没有帮助,请尝试通过在调试模式下运行服务器来调试问题(如果可以)。以下是教程:
http://blog.codefront.net/2007/02/28/debugging-ssh-public-key-authentication-problems/
答案3
确保服务器上的密钥和授权密钥文件的权限正确。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
答案4
看看您的情况,我似乎记得在 Linux 上通过 ssh-keygen 生成的密钥与 putty 不兼容。需要先使用 puttygen.exe 转换密钥(我认为您可以通过 putty GUI 执行此操作)。
因此也许你可以尝试:
- 使用 ssh-keygen 在服务器上生成一些密钥 - 不要将它们保存到服务器的 .ssh 目录中。
cat id_dsa.pub >> ~/.ssh/authorized_keys
- 将
id_dsa.pub
和复制id_dsa
到您的计算机。 - 使用putty将它们转换为适当的格式。
- 将这些密钥设置为您的计算机的公钥和私钥。