Answers:
有基于密码的验证或基于密钥的验证的优缺点。
在某些情况下,例如,基于密钥的认证是少比密码认证安全。在其他情况下,其基于密码的安全性较低。在某些情况下,一种更方便,而在另一些情况下,则更少。
一切都归结为这一点:当您进行基于密钥的身份验证时,必须使用密码保护密钥。除非您正在运行ssh-agent(每次使用ssh-agent都会使您不必输入密码),否则在便利方面您一无所获。安全性是有争议的:现在,攻击媒介已从服务器转移到您,您的帐户或个人计算机(...)上,这些攻击可能会或可能不容易被破坏。
在决定这一点时,请三思而后行。在安全性方面是否获得利益还是取决于环境的其余部分和其他措施。
编辑:哦,刚刚看到您正在谈论家庭服务器。我处在相同的情况下,“密码”或“带有钥匙的USB记忆棒”总是和我在一起吗?我选择了前者,但将SSH侦听端口更改为不同于22的端口。这阻止了所有那些la脚的脚本小子强行强制整个网络范围。
与密码登录相比,使用ssh键确实具有一项独特功能:您可以指定允许的命令。这可以通过修改~/.ssh/authorized_keys
服务器上的文件来完成。
例如,
command="/usr/local/bin/your_backup_script.sh", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...
将只允许带有特定键的命令“ /usr/local/bin/your_backup_script.sh”。
您还可以为密钥指定允许的主机:
from="yourclient,yourotherclient", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...
或结合两者:
from="yourbackupserver", command="/usr/local/bin/your_backup_script.sh", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...
使用密钥,您还可以授予某些用户(例如顾问)对服务器的临时访问权限,而无需透露该特定帐户的密码。顾问完成他/她的工作后,可以删除临时密钥。
您已经部分回答了您的问题-攻击者可以连接的位置越多,攻击者通过暴力破解(考虑DDoS)进入您的服务器的可能性就越大。
还要将密码的长度与密钥大小(通常为数千位)进行比较。
mywifesnameisangelaandshehasanicebutt
字典攻击是无法抗拒的,它非常强大,并且很容易记住,但无法猜测。如果您需要将密码提供给您的妻子,那么如果果仁巧克力点了,它就会附带奖金。
使用密码登录时,会将密码传输到服务器。这意味着服务器的操作员可以修改SSHD来访问您的密码。使用公钥身份验证,他们无法获得您的私钥,因为只有您的公钥每次都进入服务器。
ssh密钥可防止中间人对您的密码进行攻击。
当您尝试使用密钥登录时,服务器将根据您的公共密钥构造一个挑战并将其发送给您的客户端。它将解密并构造适当的发送响应。
您的私钥永远不会发送到服务器,并且监听的任何人都无法执行任何操作,除非拦截该单个会话。
使用密码,他们将拥有您的凭据。
我的解决方案是在USB密钥的加密分区上以合适的格式携带便携式ssh密钥。这使我能够:
在丢失密钥时轻松收回该密钥。
限制它允许我访问
并仍然随身携带的服务器
虽然安装挂载软件很麻烦(truecrypt)
正如@MartinVejmelka所说,这是一个折衷方案。
您使用基于密钥的身份验证的原因是,密钥远高于当前或不久的将来的强行使用,因此您要么需要来自自己的PC,要么将密钥放在USB记忆棒或类似设备上。
密码存在以下问题:
键长了几个数量级,并且在任何时候都不显示,因此可以避免这三个问题。
08Forging2?seminal*^Rajas-(Posed/|
。它是随机生成的,但我记得它没有问题。并祝您好运,它可以用肩膀冲浪或用力踢。
这里已经提到好点了。
考虑到您已经使用强密码保护了基础知识,我认为最大的风险是许多计算机都安装了键盘记录程序,而用户却没有意识到这一点。甚至有人创建包含特洛伊木马的有用实用程序的整个站点,因此对我们所有人来说,这都是可能的。例如,键盘记录器会将登录详细信息通过电子邮件发送给黑客,然后黑客可以轻松访问服务器。
最近,诺顿警告我有关下载Zombee Mod安装程序(而不是jar,即安装程序)以增加对Minecraft jar的飞行。我查看了详细信息,诺顿在此站点上列出了很多标记为包含木马的实用程序。我不知道这是否正确,但是它与文件名非常明确。众所周知,特洛伊木马在分发之前先放入(一些)warez中。
SSH优于密码的一个潜在好处是,如果您不指定SSH密码短语,则无需再次输入密码……您的计算机在服务器上是本质上受信任的,因为它具有密钥。就是说,我通常总是使用SSH密码,因此我认为这样做是有好处的。
我找到了最佳答案,这就是为什么用户指南经常推荐SSH over password身份验证来自SSHOpenSSHKeys的Ubuntu手册。我引用,
如果您认为这并不重要,请尝试记录下周获得的所有恶意登录尝试。我的计算机-完全是普通的台式机-仅在上个星期就进行了4,000次以上的猜测我的密码的尝试,以及近2500次的侵入尝试。您认为在攻击者偶然发现密码之前需要进行几千次随机猜测?
本质上,如果您拥有标点符号,大写和小写以及数字的坚如磐石的长密码,那么您可以通过密码身份验证。另外,如果您打算监视日志,并且无论如何都不会通过网络进行“超级安全”的操作,即将其用于家庭服务器。然后,一定可以使用密码。
Passwd auth方法确实不安全(imho)。通过这种机制,密码将被传输到sshd服务器(就像@ramon已经说过的那样)。这意味着某些人可以修改sshd服务器以检索密码。借助中间人攻击,在本地网络中非常容易完成此攻击。
您可以通过安装此修补程序(https://github.com/jtesta/ssh-mitm)来修补sshd服务器。使用arpspoof
和iptables
将修补的服务器置于客户端和真实的sshd服务器之间。
请禁用密码身份验证:打开配置文件/etc/ssh/ssh_config
并添加PasswordAuthentication no
。