我有 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]