ssh 密码在 macOS 上有效,但在 AWS Linux 上失败。为什么?

ssh 密码在 macOS 上有效,但在 AWS Linux 上失败。为什么?

什么可能导致我的 SSH 密码在我的 AWS 虚拟机上失败,但在我的 Mac 笔记本电脑上运行良好,对于完全相同的密钥对?参见下文(为了清晰起见添加了空行)。密码是复制/粘贴的,因此是相同的,不涉及拼写错误。

320 ~/.ssh$ uname -a
Darwin mbp.local 19.6.0 Darwin Kernel Version 19.6.0: Thu May  6 00:48:39 PDT 2021; root:xnu-6153.141.33~1/RELEASE_X86_64 x86_64

321 ~/.ssh$ ssh-keygen -y -f md.id_rsa
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHR9AEY2NOLQBVM5uUAMsKMm2XUXnUoiESGvLTJ7tte86JUI8ZZVDmGxrlP
   [snip]

322 ~/.ssh$ scp md.id_rsa md.id_rsa.pub AWS:.ssh
md.id_rsa                                     100% 2655    44.0KB/s   00:00
md.id_rsa.pub                                 100%  570     9.0KB/s   00:00

323 ~/.ssh$ ssh AWS
Last login: Fri Jul 30 11:56:36 2021 from 10.50.30.167
421 AWS:~$ cd .ssh
422 AWS:~/.ssh$ uname -a
Linux AWS.xyz.com 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
423 AWS:~/.ssh$ ssh-keygen -y -f md.id_rsa
Enter passphrase:
load failed

根据有关版本的评论编辑添加:macOS OpenSSH_8.1p1, LibreSSL 2.7.3 LinuxOpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

正如@telcoM 在他们的评论中所描述的那样,这可能就是问题所在。

那么问题来了,如何解决呢?我想我可以在 Linux 端创建一个新的密钥对..

答案1

@telcoM 上面的评论是正确的答案,为了清楚起见,在此重复:

ssh-keygen通常作为 OpenSSH 套件的一部分提供,并ssh -V会告诉您 SSH 客户端的版本,以及整个 OpenSSH 套件的版本。不过,由于 AWS 的内核版本号中有 .el6,这表明它可能运行的是 RHEL/OEL/CentOS 6.x,这是一个相当旧的发行版。我敢打赌,MacOS 的 OpenSSH 明显较新,并且支持一些加密/哈希算法,这导致了 AWS 方面的问题。手册页包含“OpenSSH 是原始免费 ssh 1.2.12 的衍生版本...”,这可能会被误认为是一个版本。 – 电信公司 7 月 30 日 21:41

事实上,我们正在运行相当旧版本的 CentOS 6,以支持其他旧软件。

相关内容