共享SSH密钥

Ric*_*haw 23 ssh

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

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

我现在想要在该国的不同地区授权另一台可信赖的计算机.如果我将〜/ .ssh的内容复制到该机器上,那么它是否可以在没有任何其他设置的情况下工作?

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

tri*_*web 30

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


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

但是 - 我认为回答此问题的缺失链接是将私钥复制到新计算机必须执行的操作.

我必须为每个密钥运行以下内容(我有3个单独的密钥用于各种组织)

ssh-add .ssh/[key-filename]
Run Code Online (Sandbox Code Playgroud)

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

一旦你对每个密钥执行此操作(并在需要时输入密钥的密码;它将提示您),ssh将能够使用这些密钥进行身份验证.

否则,任何数量的复制都不会有太大作用.SSH将忽略.ssh中的键,直到它们被明确使用(via ssh -i [keyfilename] ...).

  • 非常感谢您提供此信息.我一直在我的桌子上磕头几天,想知道为什么其他一切都到位了,但我仍然无法让我的钥匙工作.谢谢!谢谢!谢谢! (3认同)

gir*_*uid 8

这应该工作,两台机器应该能够同时保持连接 - 我必须~/.ssh在硬盘崩溃之前复制我的目录几次.


Ada*_*atz 5

复制~/.ssh系统之间是好的,只要它仅限于像刚才的文件authorized_keysconfigknown_hosts。如果希望两个主机能够相互访问,则每个主机都需要自己的专用SSH密钥,然后必须将其添加到另一个主机的authorized_keys文件中。

这是不是在整个系统中私钥复制一个好主意!

想想现实世界的秘密。每个了解秘密的人都增加了揭示秘密的机会。

每次将私钥复制到新系统时,都会增加暴露的风险,因为复制的私钥要比它们所运行的最弱系统安全性低(因为其他系统也不是无害的)。

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

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

这些似乎很牵强且不太可能,尤其是如果您不是主要目标(例如,执行人员或sysadmin)时,但这只是一个好习惯,尤其是考虑到为每个系统创建新密钥并安装其公共密钥非常容易每个适当的服务器上的密钥。(如果这令人生畏,请考虑众多的config / dotfile传播系统之一。)

此外,这意味着您将升级每个密钥的安全性,以使其随着标准的提高而提高。报废旧系统并卸下其键时,您会旋转出较弱的键。(而且,如果某个垃圾收集器找到了您的旧笔记本电脑并取消了您的钥匙,他们将不会授予任何访问权限。)