打开 SSH-无需密码登录问题-公钥

打开 SSH-无需密码登录问题-公钥

我遇到无法通过 SSH 登录的问题 - 我已遵循其他指南并确保权限设置正确,并且本地计算机和远程计算机上的公钥也匹配,但它始终默认为密码...

(我以基本用户身份登录,而不是 root 用户)

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: Connecting to ________________ port 22.
debug1: Connection established.
debug1: identity file /Users/s/.ssh/id_rsa type -1
debug1: identity file /Users/s/.ssh/id_rsa-cert type -1
debug1: identity file /Users/s/.ssh/id_dsa type 2
debug1: identity file /Users/s/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 88:ea:bd:20:af:78:f8:4f:1f:45:3c:dd:d6:c6:10:dd
debug1: Host '______________' is known and matches the RSA host key.
debug1: Found key in /Users/s/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/s/.ssh/id_rsa
debug1: Offering DSA public key: /Users/s/.ssh/id_dsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: password

谁能告诉我这可能是什么问题?

答案1

如果ssh -v客户端上的输出显示“提供公钥”,然后转到“下一个身份验证方法:密码”而没有明显的错误,请尝试以下几件事(这些对我在 CentOS 和 Fedora 上有效):

  1. 如果您的服务器sshd_configStrictModes yes(通常是默认的),那么您必须遵守一些权限规则:在服务器上,用户主目录不能由组或其他人写入(700,711或755应该可以工作),并且~/.ssh应该是700并且~/.ssh/authorized_keys应该是600(都是私有的)。
  2. 如果您~/.ssh以其他用户身份在服务器上创建了目录,并且您的 SELinux 处于严格模式,则可能会造成阻碍。在服务器上,运行restorecon -Rv ~/.ssh 作为用户,如果它发出一些它改变的东西,那可能会解决你的问题。(这是使用ssh-copy-id客户端命令的一个很好的理由,因此~/.ssh作为用户创建。)
  3. 即使 #2 不是您的问题,SELinux 仍可能是罪魁祸首。检查/var/log/audit/audit.log错误... 有一次,我试图使用 SSH 以守护进程用户的身份执行命令,其主目录位于 下/var,而 SELinux 拒绝~/.ssh/authorized_keys在这种情况下读取。

相关内容