我Cygwin
在 Windows 10 上使用了很多年,并ssh
用于访问 AWS EC2 Amazon Linux 实例进行开发。最近,我买了一台新的 Windows 10 PC,Cygwin
以通常的方式安装,然后突然ssh
停止工作,出现“ Permission denied (publickey). ”任何使用错误。经过各种检查和猜测可能出了什么问题(它在我的旧电脑上仍然可以正常工作),我尝试将Cygwin
包降级为OpenSSH
. 这解决了问题!相反,升级Cygwin
包OpenSSH
在我的旧 PC 上以与新 PC 相同的方式破坏它。这是新 PC 上的输出,显示它被最新的软件包破坏,并使用稍旧的软件包。我在两个输出之间做的唯一一件事就是运行Cygwin
安装程序并降级OpenSSH
软件包。
请注意,这两个软件包都报告了相同的底层版本OpenSSL
“ OpenSSL 1.1.1l ”,因此这似乎是软件包本身的问题。
有任何想法吗?
repete@Rich-QX411 ~/.ssh
$ ssh -V
OpenSSH_8.8p1, OpenSSL 1.1.1l 24 Aug 2021
repete@Rich-QX411 ~/.ssh
$ ssh [email protected] echo hello
[email protected]: Permission denied (publickey).
======== Downgrade the OpenSSH package in another window ========
repete@Rich-QX411 ~/.ssh
$ ssh -V
OpenSSH_8.7p1, OpenSSL 1.1.1l 24 Aug 2021
repete@Rich-QX411 ~/.ssh
$ ssh [email protected] echo hello
hello
repete@Rich-QX411 ~/.ssh
从 8.8 版开始,OpenSSH不再允许使用 SHA-1 哈希算法生成的 RSA 签名。现有的 RSA 密钥仍然被接受,但它们必须与 SHA-256 一起使用。这既适用于从客户端使用您的用户密钥生成的签名,也适用于从服务器端使用主机密钥生成的签名。
第一个
rsa-sha2
支持的 OpenSSH 版本是 7.2。如果您需要连接到仅提供 RSA/SHA-1 主机密钥签名和/或仅接受 RSA/SHA-1 用户密钥签名的主机,请将以下选项添加到您的 ~/.ssh/config:
如果您需要让您的 OpenSSH 8.8 服务器接受仅接受 RSA/SHA-1 主机密钥签名和/或仅提供 RSA/SHA-1 用户密钥签名的客户端,请将相同的选项添加到服务器的 sshd_config(减去“主机”部分)。