使用公共密钥的SSH不起作用

我有一个系统试图SSH我的使用SSH用户名@服务器。 他们给我发送了公共的RSA密钥,并且把它安装到我的.ssh / authorized key文件中。 然而,当他们尝试连接时,他们看到“权限被拒绝”。

在我的服务器上的安全日志中,我看到find了一个匹配的密钥,但仍然拒绝访问。

有任何想法吗?

更新:

昨天晚上我赶紧发表这个消息,我忽略了一些重要的细节。

首先,最重要的是,多个实体正在使用这个相同的用户在我身边进行login。 这是一个自动化的文件存储库,当有人想要连接时,我们让他们把他们的用户和服务器的公钥发送给我们,然后把它添加到我的用户的authorized_keys文件中。 这是一个非root用户。 我们还有其他外部团队可以使用ssh成功login。 它只是这个远程端的新用户不工作。

日志显示:

Sep 1 15:24:56 SavFTPDNS sshd[31674]: Connection from XXXX port 12857 Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: Client protocol version 2.0; client software version OpenSSH_4.0 Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: match: OpenSSH_4.0 pat OpenSSH* Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: Enabling compatibility mode for protocol 2.0 Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: Local version string SSH-2.0-OpenSSH_4.2 Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: PAM: initializing for "userA" Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: PAM: setting PAM_RHOST to "XXXX" Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: PAM: setting PAM_TTY to "ssh" Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: temporarily_use_uid: 504/100 (e=0/0) Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: trying public key file /home/userA/.ssh/authorized_keys Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: matching key found: file /home/userA/.ssh/authorized_keys, line 18 Sep 1 15:24:56 SavFTPDNS sshd[31674]: Found matching RSA key: d2:4f:5e:cb:cf:78:a4:67:19:99:b8:7b:2a:71:9e:61 Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: restore_uid: 0/0 Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: temporarily_use_uid: 504/100 (e=0/0) Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: trying public key file /home/userA/.ssh/authorized_keys Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: restore_uid: 0/0 Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: temporarily_use_uid: 504/100 (e=0/0) Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: trying public key file /home/userA/.ssh/authorized_keys2 Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: restore_uid: 0/0 Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: do_cleanup Sep 1 15:24:56 SavFTPDNS sshd[31674]: debug1: PAM: cleanup 

如果您可以复制/粘贴您看到的日志中的行,这将有所帮助。 在同一时间的几个猜测:

确保您的权限是正确的。

 chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys 

如果您尝试以root用户身份进行身份validation,则可能需要在sshd_config中执行以下操作:

 PermitRootLogin without-password 

我在设置一个用于备份FreeBSD主机的梭子鱼备份系统时发现了这一点。 (在FreeBSD上,它在/ etc / ssh / sshd_config中。)

确保你的authorized_keys文件中没有换行符 – 我曾经有过类似的东西咬我。 在退格键一直回到最后一个ascii字符后,它突然开始工作。

而且,sshd对于.ssh目录及其文件的权限非常特别。

这里有一个(许多)与列出的权限的链接。

http://www.unixpeople.com/HOWTO/configuring.ssh.html

你的sshd_config文件的副本会很有趣。 特别是,sshd要求将指令pubkeyauthentication设置为yes:

 PubkeyAuthentication yes 

您可能还想要指定authorized_keys文件的path

 AuthorizedKeysFile %h/.ssh/authorized_keys 

另外,是远程尝试连接到您的本地根? 在这种情况下,您还应该检查permitrootlogin。

希望能帮助到你…

他们可以使用用户名和密码正常login吗? 如果没有,可能是他们的壳被设置为nologin ; 检查/etc/passwd来validation他们的shell是否安装正确。

我有同样的问题(CentOS 6.0)。 如果SELinux打开,请尝试执行以下操作:

restorecon -R -v /root/.ssh