除 root 用户之外的所有用户的 SSH“服务器拒绝了我们的密钥”

Ash*_*ala 0 linux ssh centos putty ssh-keys

我遵循了本教程,并且密钥身份验证对 root 非常有效。但是当我创建用户xxx并在authorized_keys中添加不同的密钥并尝试使用putty登录时显示错误“服务器拒绝了我们的密钥”。我将 .ssh/authorized_keys 更改为 /etc/ssh/keys/authorized_keys,其中 chmod 700 用于密钥,chomd 600 用于authorized_keys,因为我在网上找到了有关此问题的一些答案。我什至试图交换密钥没有任何效果!只有 root 可以使用密钥登录。

在authorized_keys 文件中:

ssh-rsa pub***key rsa-key-20140424

ssh-rsa pub***key rsa-key-20140426
Run Code Online (Sandbox Code Playgroud)

在服务器日志中没有显示关于用户 xxx 接受或拒绝的任何身份验证。

腻子事件日志

2014-04-26 13:28:02 Reading private key file "C:\mykey.ppk"

2014-04-26 13:28:04 Offered public key

2014-04-26 13:28:04 Server refused our key
Run Code Online (Sandbox Code Playgroud)

服务器操作系统:centos 6.5

Dav*_*ude 5

听起来您正在尝试将用户密钥添加到 root 的authorized_keys文件而不是用户authorized_keys文件中。

只是为了澄清:

根键应该在 /root/.ssh/authorized_keys

用户密钥应该在 /home/USERNAME/.ssh/authorized_keys

可以按照您的建议将密钥存储在 /etc/ssh 中,但不能按照您的方式存储。这通常在用户主目录被加密时完成。为了使其工作,您需要确保完成以下操作:

# mkdir /etc/ssh/USERNAME
# chmod 755 /etc/ssh/USERNAME
# chown USERNAME /etc/ssh/USERNAME
# touch /etc/ssh/USERNAME/authorized_keys
# chmod 644 /etc/ssh/USERNAME/authorized_keys
# chown USERNAME /etc/ssh/USERNAME/authorized_keys
# cat /home/USERNAME/.ssh/authorized_keys > /etc/ssh/USERNAME/authorized_keys
# echo "AuthorizedKeysFile /etc/ssh/%u/authorized_keys" >> /etc/ssh/sshd_config
Run Code Online (Sandbox Code Playgroud)

注意:您可能想要实际编辑 /etc/ssh/sshd_config 而不是仅仅附加到末尾,因为您可能已经有了一个AuthorizedKeysFile集合。