如何将 PEM 文件作为 SSH 私钥添加到“已知主机”

如何将 PEM 文件作为 SSH 私钥添加到“已知主机”

我有 Ubuntu 桌面,并且我获得了一个 PEM 文件 ( mykey.pem),它是 Linux 服务器的 SSH 私钥。我试图弄清楚这个 PEM 文件需要放在我的机器本地的什么位置,以及如何将它配置/添加到我的“SSH 已知主机”。

谷歌搜索这个主题,会找到很多答案/文章创造SSH 密钥,但不能用于将现有密钥添加到已知主机。有什么想法吗?

答案1

我不知道 SSH 密钥有哪些不同类型。但你应该将公钥放在目标计算机上,而不是私钥。你的私钥将保持私密。

并且源计算机的公钥应该放在目标计算机上,~/.ssh/authorized_keys 这可以手动完成,也可以通过ssh-keygen命令完成。

我建议您在源计算机上对公钥进行 cat 操作,在目标计算机上对 authorized_keys 进行 cat 操作,并确保源密钥看起来与 authorized_keys 中的格式相同

known_hosts 文件是自动附加的文件。您无需手动编辑它。即使删除 known_hosts 文件后,您也可以连接。

编辑-

将一些评论纳入答案。公钥来自私钥。通常私钥保持私密,但 OP 被赋予了私钥,这很不寻常,但这是一种有趣的做法,因为这意味着目标计算机已经拥有了他的公钥。因此他可以登录而无需向目标计算机的 authorized_keys 添加任何内容。ssh -i 始终采用私钥。他只需要做 OPssh -i path/to/privatekeyfile user@dest 正在使用“openstack”,一些云服务,正如 openstack 网站所说 docs.openstack.org/user-guide/content/ssh-into-instance.html因此,无论私钥文件的名称是什么,无论它存储在何处,您都可以在执行时指定$ ssh -i MyKey.pem [email protected]ssh -i

答案2

根据ssh手册:

-i 身份文件

选择从中读取公钥身份验证的身份(私钥)的文件。对于协议版本 1,默认为 ~/.ssh/identity;对于协议版本 2,默认为 ~/.ssh/id_dsa、~/.ssh/id_ecdsa、~/.ssh/id_ed25519 和 ~/.ssh/id_rsa。

例如。$ ssh -i mykey.pem [email protected]

您还可以将密钥添加到身份验证代理中,这样就不必每次连接到远程服务器时都传递身份文件:

ssh-add — 将私钥身份添加到 OpenSSH 身份验证代理

例如之后$ ssh-add mykey.pem您就可以这样做。$ ssh [email protected]

相关内容