在多台计算机上使用相同的ssh私钥是一个坏主意吗?


35

我最近购买了一台笔记本电脑,需要从该笔记本电脑访问与台式机相同的远程主机。我想到可以将私钥文件从桌面复制到笔记本电脑,而不必~/.ssh/authorized_keys在我要访问的所有主机上的文件中添加新密钥。所以我的问题是:

  1. 这有可能吗?
  2. 是否有任何非显而易见的安全隐患?
  3. 有时我会从笔记本电脑登录到台式机。如果使用相同的密钥,会引起任何问题吗?

2
我怀疑您的意思是authorized_keys,而不是known_hosts。前者用于传入,后者用于传出。
马修·申克尔

接得好。固定。
杰森·克赖顿

Answers:


29

是的,这是可能的。您的私钥不绑定到单个计算机。

不知道您所说的不明显是什么,这通常是主观的;)。如果您确保有一个非常强大的密码短语集(至少20个字符),这绝不是一个坏主意。

使用与您的桌面相同的键进行连接没有任何问题。我会在笔记本电脑上为您的密钥设置一个ssh代理,然后将该代理转发到桌面,这样您就可以在从那里访问的其他系统上使用该密钥。

在Linux系统上的ssh-agent手册页中:

ssh-agent是一个程序,用于保存用于公钥身份验证的私钥(RSA,DSA)。这个想法是ssh-agent在X会话或登录会话的开始时启动,而所有其他窗口或程序都作为ssh-agent程序的客户端启动。通过使用环境变量,可以在使用ssh(1)登录到其他计算机时找到该代理并将其自动用于身份验证。

您可以在笔记本电脑上运行它,或者是Linux / Unix上的ssh-agent程序(它是OpenSSH附带的),或者是puTTY代理程序(如果使用的是Windows)。您不需要在任何远程系统上运行的代理,它仅会将您的私钥保存在本地系统的内存中,因此您只需输入一次密码即可将密钥加载到代理中。

代理转发是ssh客户端(ssh或腻子)的一项功能,该功能只是将代理通过ssh连接持久保存到其他系统。


1
我不太了解您对ssh代理转发的建议。您能详细说明一下吗?我应该提到的是,当我需要使用笔记本电脑时,我不能指望桌面始终可以访问。
杰森·克赖顿

更新了答案:)
jtimberman

10

我曾经在所有机器上使用一个私钥(其中有些我仅是用户,而不是管理员),但是最近更改了它。它只有一个密钥,但意味着如果您需要撤销密钥(如果它已被盗用),那么您将需要在所有计算机上对其进行更改。

当然,如果攻击者可以访问并能够通过SSH进入另一台计算机,则他们可以从该计算机获取密钥,依此类推。但是,这让我感到更加安全,知道我只能撤消一把钥匙并将其锁定。但这确实意味着我需要从authorized_keys文件中删除密钥。


抱歉,对一个旧帖子进行了整理,但是您是否认为通过使用密码加密私钥可以缓解这种情况?还是您的密码也被泄露了?
第三方2014年

1
通过在密钥上设置密码短语可以缓解这种情况。但是实际上,您可能会使用ssh转发(使用代理),然后在您使用的每台真实计算机上只有一个密钥,并且实际上对其进行了密码保护。
马修·辛克尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.