Linux

ssh 密碼在 macOS 上有效,但在 AWS Linux 上失敗。為什麼?

  • August 11, 2021

什麼可能導致我的 SSH 密碼在我的 AWS VM 上失敗,但在我的 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 端創建一個新的密鑰對..

@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 版本,以支持其他舊軟體。

引用自:https://unix.stackexchange.com/questions/662677