我在使用自己的 SSH 密钥对设置不同的 CentOS 帐户时遇到问题。我已经创建了所需的文件,但是当使用 Putty 连接时,它显示“连接被拒绝”,这是 putty 日志:
2013-03-31 23:09:14 查找主机“XXX.XXXXXX.XXXXX” 2013-03-31 23:09:14 连接到 XX.XX.XXX.XXX 端口 22 2013-03-31 23:09:14 服务器版本:SSH-2.0-OpenSSH_5.3 2013-03-31 23:09:14 使用SSH协议版本2 2013-03-31 23:09:14 我们声明版本:SSH-2.0-PuTTY_Release_0.62 2013-03-31 23:09:14 进行 Diffie-Hellman 组交换 2013-03-31 23:09:15 使用哈希 SHA-256 进行 Diffie-Hellman 密钥交换 2013-03-31 23:09:15 主机密钥指纹为: 2013-03-31 23:09:15 ssh-rsa XXXX XX:6s:18:67:a3:39:39:95rn:21:p1:9b:12:4b:1p:24 2013-03-31 23:09:15 初始化 AES-256 SDCTR 客户端->服务器加密 2013-03-31 23:09:15 初始化HMAC-SHA1客户端->服务器MAC算法 2013-03-31 23:09:15 初始化 AES-256 SDCTR 服务器->客户端加密 2013-03-31 23:09:15 初始化HMAC-SHA1服务器->客户端MAC算法 2013-03-31 23:09:15 读取私钥文件“C:\Users\XXXXX\Desktop\SSH-Key.ppk” 2013-03-31 23:09:15 提供公钥 2013-03-31 23:09:15 服务器拒绝我们的密钥 2013-03-31 23:09:15 使用 SECUR32.DLL 中的 SSPI 2013-03-31 23:09:15 尝试 GSSAPI 身份验证 2013-03-31 23:09:16 GSSAPI 身份验证请求被拒绝 2013-03-31 23:09:16 断开连接:没有可用的支持的身份验证方法(服务器发送:publickey、gssapi-keyex、gssapi-with-mic)
答案1
看看这个 superuser.com 问题及其答案: putty 0.61:为什么在我输入登录 ID 后会看到“访问被拒绝”消息?
听起来像是您的 PuTTY 特定版本的问题。确保您使用的是 0.62 或更高版本。
这似乎是 PuTTY 0.61 版本的一个错误。
概括:GSSAPI 失败后,PuTTY 窗口中打印出虚假的“访问被拒绝”
班级:bug:这显然是我们想要解决的实际问题。
困难:有趣:只需要学费,而且不多。
优先事项:高:这应该在下一个版本中修复。
缺席:0.60 存在:0.61 固定:r9232 0.62
答案2
重要的部分是:
2013-03-31 23:09:15 Offered public key
2013-03-31 23:09:15 Server refused our key
这意味着:客户端发送了公钥,但服务器由于某种原因拒绝了它。要找出服务器拒绝密钥的原因,你需要查看服务器的日志,通常/var/log/secure
或/var/log/auth.log
在 Linux 系统上。
此类拒绝的最常见原因是用户(您登录的用户除外)对以下一项或多项内容具有写入权限:
- 这
~/.ssh/authorized_keys file
- 目录
~/.ssh
- 用户的主目录。
对于 SSH 的新用户来说,如果您向相关文件或目录授予过多的访问权限,SSH 密钥身份验证就会停止工作,这似乎违反直觉。这是一项安全功能:如果授权 SSH 密钥列表可由用户帐户所有者以外的任何人写入,则恶意用户可能只需放入他/她的密钥,然后就可以不受限制地访问该帐户。在这种情况下,sshd
只需停止接受该用户的密钥身份验证,直到解决权限问题(并且希望检查授权密钥列表是否被篡改)。