假设我在 Mac 中创建 SSH 密钥来连接到我的远程服务器。
我的服务器有我的公钥。我的 Mac 有我的私钥。
到目前为止,一切都很好。
几天后,我想使用我的 Windows PC(WinPC)连接到我的服务器。
在我看来,应该有两种方法可以通过我的 WinPC 进行连接:
- 我应该能够将我的私钥从 Mac 复制到 WinPC 并在那里使用私钥。(更新:是否需要将 Mac 密钥从 OpenSSH 转换为其他格式(例如 PPK)以便在 WinPC 中使用,或者是否不再需要?)
- 我应该能够在我的 WinPC 上生成新的 SSH 密钥,并将新的公钥加载到我的服务器。
我的问题是:
我是否正确地认为上述两个选项均可用?
总体而言,哪一个是更好的选择(如果有的话)?
答案1
两个选项均有效。
格式由您在 Windows 上使用的 ssh 客户端决定。
一般情况下,你不会想将私钥传播到很多台机器上。首选方案是为每台机器生成一个新的密钥对,并将公钥添加到服务器。
答案2
您的假设基本正确。如果您使用的是 PuttyGen(我相信您使用的是,因为您引用了 PPK 文件),那么是的,您需要在不同的格式之间进行转换。
如果您在 Mac 上创建密钥,则私钥将采用 OpenSSH 格式(或应该是),PuttyGen 将允许导入该格式。同样,如果您在 PuttyGen 中创建密钥对,则可以在本地保存 PPK,但也可以导出私钥为 OpenSSH 格式。您需要将导出的文件复制到所需的客户端(并可能重命名为默认的 id_rsa 或在 ssh 客户端字符串中指定所需的 IdentityFile 选项)。
乔伊