我有一台运行OS X,XP和Ubuntu的计算机。 虽然,有时它运行在虚拟机或实际安装的操作系统的倍数。 我有几台服务器需要不断地进行SSH连接 – 但是有时我会更换主机或者擦除服务器。
无论如何,我厌倦了每次使用新的操作系统或服务器时build立新的SSH密钥对。 所有这些服务器上的信息都在我的电脑上 – 所以如果有人在这里find我,让它通过所有的守卫狗,偷走我的电脑,他们将不需要闯入我的服务器,因为我没有操作系统使用文件encryption(我甚至不知道如何打开它)。
我怎样才能将我的密钥对与我在这台PC上使用的所有操作系统同步? 在Windows上,我使用Putty / Pageant,而Snow Leopard和Linux有本地SSH。 所以文件格式不完全一样。
我使用ssh-keygen -t dsa在linux上生成所有的密钥,并且在Windows上使用Cygwin下的Putty / Pageant和SSH工作得很好。 您不需要为每个服务器分配不同的密钥对。 您只需将您的公钥复制到要login的每个服务器。 你说文件格式是不一样的,但以我的经验,它们是不同的文件名和path。 如果你真的需要复制密钥,我会为每个操作系统创build一个单独的bash脚本来自动化公钥传播。
为了保证你的私钥安全,即使有人“偷你的电脑”,你需要密码encryption它。 如果你不喜欢不断地input密码,使用像钥匙串这样的工具,所以你只需要在每个会话中解密你的私钥。 它的工作有点像sudo …
尝试遵循这个howto:
“ssh-copy-id”命令会有帮助吗?
你基本上要问的是:“如何跨多个操作系统同步文件?
小:也许Dropbox与一个小的(特定于操作系统的)shell脚本(自动安装ssh密钥)。 这里的select比自行车棚颜色更可数。
中:一个容纳你的密钥的git服务器将是一个不错的select,甚至允许你有一个你所有的密钥的历史。
大:傀儡当然会更好(但只有当你愿意使用它,并不会支持Windows(直接))。
腻子可以生成密钥并加载它们。
创build一个你认为安全的VCS仓库(git / svn / whatever)。 检查您的钥匙,然后在任何需要的地方结账。 添加login脚本以自动更新/签入更改。