我已经在 Windows 上安装了 OpenSSH。
我可以从这台 Windows 机器上使用 Putty 通过 ssh 成功连接到我的远程服务器。
但是当打开 PowerShell 并尝试
ssh [email protected]
我遇到了错误:
debug3: send packet: type 5
Corrupted MAC on input.
ssh_dispatch_run_fatal: Connection to 1.2.3.4 port 22: message authentication code incorrect
当我在安全日志中查看远程服务器时,我得到了:
Dec 7 03:20:22 allo-01 sshd[10102]: Connection from 4.3.2.1 port 49869 on 1.2.3.4 port 22
Dec 7 03:20:23 allo-01 sshd[10102]: Connection reset by 4.3.2.1 port 49869 [preauth]
你知道哪里出了问题吗?为什么我在 Windows 上使用 openssl 的 ssh 命令与 PuTTY 的行为不同?
答案1
Raoul 对自己问题的回答是正确的。我遇到了同样的问题,在-m
选项后添加正确的算法名称有效(在我的情况下,选项是-m hmac-sha2-512
从 PowerShell 连接到运行 Ubuntu 18.04 的计算机)。
我不确定要使用哪种算法,但您可以通过运行以下命令列出所有可用的算法:
ssh -Q mac
我随机选择了一个,尝试了一下,远程服务器返回说不支持该算法,但它很方便地告诉我哪个算法是支持的,这样我就可以修改命令了。然后我可以使用这个命令 ssh 进入远程机器:
ssh -m hmac-sha2-512 <user_name>@<remote_address>
如果也需要使用scp
,参数会有所不同:
scp -o MACs=hmac-sha2-512 <and the rest of your scp command>
答案2
出色地,
Corrupted MAC on input.
让我想想我的以太网卡出了什么问题。
确实,在 ssh 的世界里,MAC 的意思是“消息认证码”。
因此,我通过在 ssh 命令选项 -m 中添加远程可接受的算法来解决我的问题。
答案3
我尝试了许多可用的解决方案,但下面的解决方案有效。
将“MACs hmac-sha2-512”添加到 SSH 配置文件