共享SSH密钥

时间:2010-12-23 16:27:35

标签: ssh

我在托管多个网站的服务器上为许多用户帐户使用私有SSH密钥和无密码条目。

我为每个用户帐户使用相同的私钥。 (因为我很懒惰?或者是“正确”的方式)。

我现在想要在该国的不同地区授权另一台受信任的计算机。如果我将〜/ .ssh的内容复制到该机器上,那么它是否可以正常工作?

两台机器能否同时保持连接?

4 个答案:

答案 0 :(得分:29)

更新:作为额外的安全建议,您应为新计算机生成一组新密钥,并将新公钥发送到您使用它的各个主机,而不是复制您的私钥。但是,如果您只是将所有内容移动到新计算机上,您可以随身携带钥匙,但请记住在旧计算机上安全地销毁它们。


正确答案是将您的.ssh目录从旧计算机复制到新计算机。这部分很简单(scp -r .ssh user@newmachinehost:~会很好 - 或者你可以逐个字符地键入键,直到你)。

但是 - 我认为在将私钥复制到新计算机之后,您需要做的就是回答这个问题。

我必须为每个密钥运行以下内容(我有3个不同组织的单独密钥)

ssh-add .ssh/[key-filename]

如果省略filename参数,则假定为id_dsa

对每个密钥执行此操作(如果需要,输入密钥的密码;它会提示您),ssh将能够使用这些密钥进行身份验证。

否则,复制量不会太大。 SSH将忽略.ssh中的键,直到它们被明确使用(通过ssh -i [keyfilename] ...)。

答案 1 :(得分:8)

这应该可行,并且两台机器应该能够同时维护连接 - 在硬盘崩溃之前,我不得不复制我的~/.ssh目录几次。

答案 2 :(得分:4)

只要仅限~/.sshauthorized_keysconfig等文件,系统之间复制known_hosts就可以了。如果您希望两台主机能够相互访问,则每台主机都需要自己的私有SSH密钥,然后必须将该密钥添加到其他主机的authorized_keys文件中。

在系统之间复制私钥是的好主意!

想想现实世界的秘密。每个了解秘密的人都会增加被泄露的机会。

每次将私钥复制到新系统时,都会增加暴露风险,因为复制的私钥不如他们生活的最弱系统安全(因为其他系统不是&#39 ; t无懈可击)。

如果您的笔记本电脑被盗,您需要撤销存储在那里的所有私钥(和保存的密码)。当登录服务器的唯一方法是使用非常密钥时,这就成了问题。您最好记住在桌面上生成一个新密钥并将其安装在您撤销旧密钥的每个系统上!

现在考虑您的桌面被黑客攻击,有人在您不知情的情况下窃取您的私钥。也许您已经在工作笔记本电脑和个人桌面之间共享了此密钥,但您的桌面并不需要访问您的工作系统(因为您有良好的工作/生活平衡)。即使没有损害您的笔记本电脑,攻击者现在也可以访问您的工作系统。工作中的信息安全团队迫使您交出您的笔记本电脑以便他们进行审核,但经过一周的分析后,他们什么也没找到。不太好玩。

这些可能看起来很牵强且不太可能,特别是如果你不是主要目标(例如执行官或系统管理员),但这只是一个很好的做法,特别是考虑到创建它是多么容易每个系统的新密钥,并在每个适当的服务器上安装它们的公钥。 (如果这看起来令人生畏,可以考虑一下无数的配置/点文件传播系统。)

此外,它意味着您可以升级每个密钥的安全性,以便在它们改进时满足标准。当您退出旧系统并移除其键时,您可以旋出其较弱的键。 (如果一些垃圾选择器发现你的旧笔记本电脑并取消删除你的密钥,他们就不会授予任何访问权限。)

答案 3 :(得分:1)

只要您不共享私钥,这就是安全的。只需将公钥放在远程计算机的〜/ .ssh / authorized_keys文件中即可进行无密码输入。不要共享私钥。

密钥仅用于身份验证。您可以使用相同的密钥登录任意次数,只要您可以使用该私钥登录一次。