打开SSH - 无需密码即可登录登录 - 公钥


2

我遇到了一个无法通过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

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


你在服务器上运行什么发行版?还包括问题的输出 ls -lR ~/.ssh 在服务器上运行。
Cristian Ciupitu

输出ls -lR~ / .ssh:-rw-r - r-- 1 crimeand crimeand 607 Jun 28 23:13 authorized_keys -rw ------- 1 crimeand crimeand 608 Jun 28 23:14 id_dsa.pub运行Red Hat 4.4.7-4
Bob

在你可以很好地格式化的问题。是Red Hat Linux 4.4还是Red Hat 企业 Linux 4.4?
Cristian Ciupitu

最后几行显示您尝试使用RSA私钥但使用DSA公钥。你有服务器的实际RSA公钥吗?或者,您有DSA私钥吗?
arxanas

是的,我在本地计算机上生成了公钥并将其复制到服务器 - 我没有使用私钥
Bob

Answers:


0

如果你的 ssh -v 客户端上的输出显示它是“提供公钥”,然后转到“下一个身份验证方法:密码”而没有明显的错误,这里有一些事情要尝试(这些在我的CentOS和Fedora上工作):

  1. 如果你的服务器 sshd_config 具有 StrictModes 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 在这种情况下。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.