我已经Cygwin
在 Windows 10 上使用多年了,并且用它ssh
来访问 AWS EC2 Amazon Linux 实例进行开发。最近,我买了一台新的 Windows 10 PC,Cygwin
按照通常的方式安装,然后突然ssh
停止工作,给出“权限被拒绝(公钥)。“任何使用都会出错。经过各种检查和猜测可能出错的地方后(它在我的旧电脑上仍然可以正常工作),我尝试降级软件包Cygwin
。OpenSSH
这样就解决了问题!相反,在我的旧电脑上升级软件包Cygwin
会OpenSSH
以与在新电脑上相同的方式破坏它。这是新电脑上的输出,显示它在最新的软件包下损坏,而在稍旧的软件包下可以正常工作。在这两个输出之间我唯一做的事情就是运行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
答案1
从 8.8 版开始,OpenSSH不再允许使用 SHA-1 哈希算法生成的 RSA 签名。现有的 RSA 密钥仍可接受,但必须与 SHA-256 一起使用。这既适用于使用客户端用户密钥生成的签名,也适用于使用服务器端主机密钥生成的签名。
第一个支持的 OpenSSH 版本rsa-sha2
是 7.2。
如果您需要连接到仅提供 RSA/SHA-1 主机密钥签名的主机,和/或仅接受 RSA/SHA-1 用户密钥签名的主机,请将以下选项添加到您的 ~/.ssh/config:
Host whatever.example.com
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
如果您需要让 OpenSSH 8.8 服务器接受仅接受 RSA/SHA-1 主机密钥签名和/或仅提供 RSA/SHA-1 用户密钥签名的客户端,请将相同的选项添加到服务器的 sshd_config(减去“主机”部分)。