![ssh 密码在 macOS 上有效,但在 AWS Linux 上失败。为什么?](https://linux22.com/image/193775/ssh%20%E5%AF%86%E7%A0%81%E5%9C%A8%20macOS%20%E4%B8%8A%E6%9C%89%E6%95%88%EF%BC%8C%E4%BD%86%E5%9C%A8%20AWS%20Linux%20%E4%B8%8A%E5%A4%B1%E8%B4%A5%E3%80%82%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F.png)
什么可能导致我的 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,以支持其他旧软件。