使用 putty 创建了 pub/priv 密钥,创建了 .ssh 文件夹和 authorized_keys,但仍然不起作用

使用 putty 创建了 pub/priv 密钥,创建了 .ssh 文件夹和 authorized_keys,但仍然不起作用
  1. 在我的计算机上使用 puttygen 创建公钥/私钥。
  2. 将公钥放在服务器上的 .ssh/authorized_keys 文件夹中
  3. 设置 pageant.exe 以在我的计算机上使用 pk。
  4. 当我运行 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 执行此操作)。

因此也许你可以尝试:

  1. 使用 ssh-keygen 在服务器上生成一些密钥 - 不要将它们保存到服务器的 .ssh 目录中。
  2. cat id_dsa.pub >> ~/.ssh/authorized_keys
  3. id_dsa.pub和复制id_dsa到您的计算机。
  4. 使用putty将它们转换为适当的格式。
  5. 将这些密钥设置为您的计算机的公钥和私钥。

相关内容