Sharing SSH keys
我在承载多个网站的服务器上为多个用户帐户使用一个专用的ssh密钥和无密码条目。
我对每个用户帐户使用相同的私钥。(因为我懒惰?或者这是"正确"的方式)。
我现在想授权另一个在该国不同地区的受信任计算机。如果我将~/.ssh的内容复制到那台机器上,在没有任何其他设置的情况下,它能工作吗?
两台机器能否同时保持连接?
更新:作为额外的安全建议,您应该为新机器生成一组新的密钥,并将新的公钥发送到您使用它的各个主机,而不是复制您的私钥。不过,如果你只是把所有东西都搬到一台新电脑上,你可以随身携带钥匙,但记住在旧电脑上安全地销毁它们。
正确的答案是将您的
但是——我认为,要回答这个问题,缺少的链接是在将您的私钥复制到新机器之后必须做的事情。
我必须为每个键运行以下代码(我有3个不同组织的单独键)
1 | ssh-add .ssh/[key-filename] |
如果省略了文件名参数,则假定为
一旦您对每一个密钥执行此操作(并在需要时输入密钥的密码短语;它将提示您),ssh将能够使用这些密钥进行身份验证。
否则,任何数量的复制都做不到什么。ssh将忽略.ssh中的密钥,直到它们被显式使用为止(通过
这应该是可行的,而且两台机器都应该能够同时保持连接—在硬盘崩溃之前,我已经复制了几次我的
在系统之间复制
跨系统复制私钥不是一个好主意!
想想现实世界的秘密。每一个知道这个秘密的人都会增加被揭露的机会。
每次将您的私钥复制到新系统时,都会增加暴露风险,因为复制的私钥比它们所使用的最薄弱的系统更不安全(因为其他系统也不是无懈可击的)。
如果你的笔记本电脑被偷了,你需要撤销所有存储在那里的私钥(和保存的密码)。当登录到服务器的唯一方法就是使用该密钥时,这就成了问题。你最好记住在你的桌面上生成一个新的密钥,并将它安装在你撤销旧密钥的每个系统上!
现在考虑一下,你的桌面被黑客入侵,有人在你不知情的情况下窃取了你的私钥。也许你在你的工作笔记本电脑和个人桌面之间共享了这个密钥,但是你的桌面并不真正需要访问你的工作系统(因为你有良好的工作/生活平衡)。攻击者现在可以访问您的工作系统,即使没有损坏您的笔记本电脑。工作中的信息安全小组强迫你交出你的笔记本电脑,这样他们就可以审计它,但是经过一周的分析,他们什么也找不到。不是很有趣。
这些可能看起来有些牵强,而且不太可能,尤其是如果您不是主要目标(例如,执行人员或系统管理员),但这只是一个好的实践,特别是考虑到为每个系统创建新密钥并在每个适当的服务器上安装它们的公钥是多么容易。(如果这看起来令人望而生畏,那么考虑一下无数配置/点文件传播系统中的一个。)
此外,这意味着您将升级每个密钥的安全性,以在它们改进时满足标准。当您淘汰旧系统并移除它们的键时,您会旋转出它们较弱的键。(如果一些拾荒者发现了你的旧笔记本电脑,并恢复了你的钥匙,他们将不会授予任何访问权限。)
这是安全的,只要你不共享你的私钥。只需将公钥放在远程计算机的~/.ssh/authorized_-key s文件中,即可进行无密码输入。但是不要共享私钥。
密钥仅用于身份验证。您可以使用同一个密钥登录任意多次,只要您可以使用该私钥登录一次。