2010-12-23 167 views
18

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

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

我现在要授权其他受信任计算机在国内的不同部分。如果我将我的〜/ .ssh的内容复制到该机器上,那么这些工作不需要其他设置?

将两台机器能够保持在同一时间有关联吗?

回答

8

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

0

这是安全的,只要你不分享你的私钥。只需将公钥放在远程机器的〜/ .ssh/authorized_keys文件中即可进行无密码输入。尽管如此,不要共享私钥。

这些密钥仅用于身份验证。只要您可以使用该私钥登录一次,您可以使用相同的密钥随时登录多次。

+0

不太我问什么 - 我有密码的条目中设置了一个远程机器,但我想授权具有相同私钥的多台计算机。 – 2010-12-23 16:38:59

+0

这正是我的回答。你拿你的公钥,然后把它放在你想访问的任何远程机器上。你在这里没有分享私钥,你正在共享一个公钥。这就是公共密钥公开的原因:分享它们。 – wilhelmtell 2010-12-23 16:50:18

25

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


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

- 我想缺少的环节来回答这个问题是你必须做的你的私人密钥复制到新的机器是什么。

我不得不运行每个键下述(I具有用于各种组织3个独立的键)

ssh-add .ssh/[key-filename] 

如果省略了文件名参数,id_dsa假设。

一旦你这样做每个键(如果需要进入他们关键的密码,它会提示你),ssh将能够使用这些密钥进行验证。

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

4

在系统之间复制~/.ssh是好的,只要它仅限于像authorized_keysconfigknown_hosts这样的文件。如果您希望两台主机能够互相访问,每台主机都需要自己的私有SSH密钥,然后该密钥必须添加到其他主机的authorized_keys文件中。

这是不是在系统中复制私钥的好主意!

思考的现实世界的秘密。每个知道秘密的人都会增加被揭露的机会。

你的私人密钥复制到新系统时,都会增加你的暴露风险,因为复制私钥是比他们住在中最薄弱的系统安全性较低(因为其他系统也并非无懈可击要么)。

如果你的笔记本电脑被盗,你需要撤销所有私钥(和保存的密码),这些存储在那里。当登录到服务器的唯一方法是非常关键时,这会变得有问题。你最好记住在你的桌面上生成一个新的密钥,并在每个系统上安装它,以撤销旧的密钥!

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

这些看起来似乎牵强并且不太可能,特别是如果你不是主要目标(例如执行官或系统管理员),但这只是一个好习惯,尤其是考虑到为每个系统创建新密钥是多么容易并在每台相应的服务器上安装公钥。 (考虑配置/ dotfile传播系统的无数之一,如果这似乎令人望而生畏。)

此外,它意味着你将升级每个密钥的安全性,以符合标准,因为他们提高。当你退休旧系统并删除他们的钥匙时,你可以旋出他们较弱的钥匙。 (如果一些垃圾拾起找到你的旧笔记本电脑和undeletes您的钥匙,他们将不授予任何权限。)