我是否需要SSH RSA密钥的密码?


71

在我开始目前的工​​作(一家小型企业)之前,我的办公室在网络上没有防火墙,几乎没有任何备份。既然我已经以专用的sysadmin / one-man-IT-partment身份登录,那么我将尽我所能来更改此设置。在向老板解释了我们的脆弱性之后,他允许我设置一些备份服务器,其中一台在他家里。

现在,我正在尝试设置所有内容,以便可以自动执行每日备份。我打算通过ssh使用rsync来做到这一点。为了安全和自动化的方便,我计划禁用ssh密码登录,而仅使用rsa密钥验证。好吧,如果我设置了rsa密码​​短语,那么我仍然必须输入密码,这是一个问题。

没有rsa密码​​会使事情变得不那么安全吗?我是公司中唯一对此类事情有任何线索的人,因此,我不必担心有人在我的机器上调用终端(无论如何,当我使用AFK时该终端始终处于锁定状态) ),并切入其中一台备份服务器并造成任何损坏。我对系统管理领域仍然非常陌生,这是我第一次做这样的事情,并且我不想在安全性设置中留下任何漏洞。

如果有问题,这里的计算机正在运行Ubuntu 10.10,SME Server和OSX 10.6。


5
如果您的密钥没有密码短语,那么确实不会造成任何安全损失。此时,维护密钥的安全完整性变得不可或缺,因为如果有人能够复制密钥,那么就不会有阻止他们使用密钥的秘密密钥。
克里斯·马里西奇

1
也许只有我一个人,但我不知道上面的评论想说什么。
underscore_d

3
@underscore_d他基本上是在说:密钥是否具有密码短语对SSH安全没有影响,但是必须将密钥本地安全。
Hartator '16

Answers:


89

如您所知,密码短语为您提供的好处是,如果某人能够读取您的私钥,则他们“无法”使用它。

如果某人能够访问该私钥,那么您应该理所当然地认为,无论使用公钥设置的任何计算机,他们都可以访问/破坏。诸如.bash_history或.ssh / config之类的东西只会使此操作更容易,即使您的.ssh / known_hosts被混淆了。

在您的钥匙上没有密码并不是世界末日,尽管如此,这里有3种想法可以帮助您更好地保护自己。(第二大骗子,如果没有别的,请读


  1. 不要只是在所有机器和用户之间使用相同的密钥。在每台机器上(需要执行此类操作)生成每个用户自己的密钥对。这将使您对可以在何处切换的内容保持细粒度的控制。

  2. 在将密钥添加到authorized_keys文件时,可以将其锁定为仅能够运行特定命令,或者仅从特定主机使用它。

    查看man ssh并搜索command =from =

    语法类似于:

    from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name

    即弹出“rsync的”在那里,只有 “rsync的”可以通过您的键调用,并且从IP地址1.2.3.4。多个IP可以用分隔,。还支持主机名。

  3. 我想到的另一件事是sshd_config中的“ AllowUser”指令

    允许用户

    此关键字后可以跟一个用空格分隔的用户名模式列表。如果指定,则仅对与模式之一匹配的用户名允许登录。'*'和'?' 可以用作模式中的通配符。只有用户名有效;无法识别数字用户ID。默认情况下,所有用户都可以登录。如果该模式采用USER @ HOST的形式,则分别检查USER和HOST,将登录名限制为来自特定主机的特定用户。

    这基本上可以确保用户只能从某个位置登录。(尽管它也接受通配符)不会解决您的所有问题,但至少会使其他人感到困难。


1
美丽-这正是我需要知道的。非常感谢!
eckza 2011年

3
没问题,只是不要把它当作详尽的清单!:-)诸如定期查看auth.log / secure之类的事情浮现在脑海。
PriceChild 2011年

3
因此,进行审核而不是担心您的密码被盗了吗?
Ehtesh Choudhury 2013年

3
@shurane都做!
PriceChild


-4

我个人使用DSA而不是RSA,主要是因为它一直是我一直使用的,并且我知道它“行之有效”,但是我想的理论是相同的。您可以在下面替换dsarsa

在源上:

$ ssh-keygen -t dsa

然后将.ssh/id_dsa.pub文件内容复制到.ssh/authorized_keys目标用户帐户中。

然后,您应该能够在没有密码的情况下在源和目标之间切换。


1
您是否出于DSA而不是RSA提倡理由?我经常看到相反的建议。
PriceChild 2011年

@PriceChild:AFAIK,它们的安全性差不多(假设密钥大小足够)。我自己不是密码学家,我相信OpenSSH和GnuPG决定使用RSA作为默认密钥算法。另请参阅此问题
grawity 2011年

没有真正的理由-主要是个人选择-以及RSA近期被黑客入侵并且敏感代码被盗的事实-与RSA密钥有何关系,我不知道(谁知道),但我一直使用DSA,因为它看起来更安全。
Majenko 2011年

9
恐怕对“公司RSA”的黑客攻击对“算法RSA”的安全性没有影响。另请查看secure.wikimedia.org/wikipedia/en/wiki/RSA_Security- “ RSA以RSA公钥加密算法命名,该算法又以其共同发明人的名字缩写命名:Ron Rivest,Adi Shamir和伦·阿德曼。”
PriceChild 2011年

6
@Matt:他们唯一的共同点是名字。在RSA非对称加密算法是纯数学,有没有办法它可以通过一个磨合的一些公司的系统被削弱。
grawity 2011年
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.