所以我将一个 SSH 私钥从我的 Linux 机器复制到了我的 M1 Mac。(我试图通过将密文上传到秘密管理器以及直接传输文件来做到这一点)但是当尝试从每个机器通过 SSH 连接到同一台机器时,我只能从 Linux 机器上成功。
Linux机器:
$ ssh -V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f 31 Mar 2020
$ md5sum id_rsa
7ed8b0c73e168ef48acc715d4c6bcf73 id_rsa
$ sha256sum id_rsa
969d0a35b36c50035881bdd2d8367b90dbff548131d5c72989d29e83b7a3aa19 id_rsa
$ ssh-keygen -l -f id_rsa
4096 SHA256:d19Ee+tlzVHitLzKuuZbdgYcnhla96ypXNtpBwrqfqE [email protected] (RSA)
$ ssh -i id_rsa [email protected]
[redacted MOTD; WORKS]
M1 麦克:
$ ssh -V
openSSH_8.6p1, LibreSSL 2.8.3
$ md5 id_rsa
MD5 (id_rsa) = 7ed8b0c73e168ef48acc715d4c6bcf73
$ shasum -a 256 id_rsa
969d0a35b36c50035881bdd2d8367b90dbff548131d5c72989d29e83b7a3aa19 id_rsa
$ ssh-keygen -l -f id_rsa
4096 SHA256:rWsP9jN2otlchh8icr/jlnZxDjEfEkngDJOoPh4RYZI [email protected] (RSA)
$ ssh -i id_rsa [email protected]
[email protected]: Permission denied (publickey).
AFAICT 这些私钥是相同的。但是由于某种原因 ssh-keygen 不会对它们进行相同的指纹识别。即使它们具有相同的校验和。这可能是 M1 SoC 的问题吗?还是这里发生了更明显的事情?
这里的问题是对 ssh-keygen 如何报告指纹的误解。即使您为它提供了私钥的路径,使用 -l 标志它也会使用相应的公钥文件。这就是我仍然不匹配的地方。修复公钥后,一切都按预期工作。