配置 ssh 密钥后,SSH 密码提示输入密码

配置 ssh 密钥后,SSH 密码提示输入密码

虽然我将公钥放在远程计算机上,但仍然收到 ssh 密码提示,这是我的ssh -vv输出(仅最后几行)可能会有所帮助:

debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/lior/.ssh/id_rsa  <-- THAT's MY PRIVATE KEY!
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /Users/lior/.ssh/id_dsa
debug1: Trying private key: /Users/lior/.ssh/id_ecdsa
debug1: Trying private key: /Users/lior/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: Next authentication method: password

重要提示:在执行相同的过程后,我能够在没有密码的情况下 ssh 到其他计算机,因此我假设问题出在特定的远程计算机(在 CentOS 6 上运行)上。

有任何想法吗?

答案1

在远程用户的主目录中:

  • homedir 的所有者是谁?
  • 谁是 homedir/.ssh 的所有者?
  • 谁是 homedir/.ssh/authorized_keys 的所有者

~、~/.ssh 和 ~/.ssh/authorized_keys 的访问权限是什么

对 ~/.ssh/authorized_keys 授予宽松的读取和/或写入权限将使 sshd 不信任该文件!

答案2

不确定这是否能 100% 解决这个问题,但尝试一下。在目录中创建一个文件~/.ssh/config。当您 vim 进入配置文件时,您可以尝试以下操作:

Host <host_name_of_server>
HostName <ip_address_of_server>
User <user_created_for_server>
Port 22
PasswordAuthentication No
IdentityFile <path_to_key>

因此,一旦添加了此内容,您现在可以执行以下操作:

ssh <host_name_of_server>

当您通过 SSH 连接到分配给服务器的主机时,这将强制它不提示输入密码。让我知道结果如何。

相关内容