我有一台运行 OS X、XP 和 ubuntu 的计算机。不过,有时它在 VM 或实际安装中运行多个操作系统。我有几台服务器需要不断通过 SSH 连接 - 但有时我会更换主机或清除服务器。
无论如何,每次使用新操作系统或服务器时,我都厌倦了设置新的 SSH 密钥对。这些服务器上的所有信息都在我的电脑上 - 所以如果有人在这里发现我,让它通过所有看门狗,并偷走我的电脑,他们就不需要闯入我的服务器,因为我使用的所有操作系统都没有打开文件加密(我甚至不知道如何打开它)。
我如何将我的密钥对同步到我在这台电脑上使用的所有操作系统?在 Windows 上,我使用 Putty/Pageant,而 Snow Leopard 和 Linux 有原生 SSH。因此文件格式并不完全相同。
答案1
我在 Linux 上使用以下方法生成所有密钥ssh-keygen -t dsa并且它可以在 Windows 上的 Cygwin 下与 Putty/Pageant 和 SSH 配合使用。您不需要为每个服务器准备单独的密钥对。您只需将公钥复制到要登录的每个服务器即可。您说文件格式不一样,但根据我的经验,它们是相同的,只是文件名和路径不同。如果您真的需要复制大量密钥,我会为每个操作系统创建一个单独的 bash 脚本来自动执行公钥传播。
为了保证您的私钥安全,即使有人“窃取了您的电脑”,您也需要使用密码加密它。如果您不喜欢不断输入密码,请使用 keychain 之类的实用程序,这样您只需在每个会话中解密一次私钥。它的工作原理有点像 sudo...
请尝试按照此操作方法操作:
答案2
“ssh-copy-id”命令有帮助吗?
答案3
您本质上想问的是:“如何在多个操作系统之间同步文件?”
小的:也许 Dropbox 带有一个小型(特定于操作系统的)shell 脚本(用于自动安装 ssh 密钥)。这里的选择比自行车棚颜色还要多。
中等的:一个保存你的密钥的 git 服务器将是一个不错的选择,它甚至允许你拥有所有密钥的历史记录。
大的:Puppet 当然会更好(但前提是你愿意使用它,并且不会(直接)支持 Windows)。
答案4
在您认为安全的某个地方(git/svn/其他)创建一个 VCS 存储库。签入您的密钥,然后在需要的地方签出。添加登录脚本以自动更新/签入更改。