我正在考虑使用密钥文件远程 SSH 访问我的服务器,而不是在登录时手动输入帐户密码。我在互联网上找到了几个关于如何为我正在使用的 Putty 执行此操作的教程。他们都建议使用密码保护私钥文件。这非常有意义,因为我不希望任何可能获得该私钥文件访问权限的人在没有密码的情况下访问我的服务器。
但是,我当时问自己:如果每次使用密钥连接服务器时都需要输入密钥的密码,那我为什么还要使用密钥文件呢?我可以直接继续输入用户密码。
不幸的是,我在网上找不到这个问题的好答案。
所以想在这里问一下,为什么要使用受密码保护的密钥文件进行 SSH 身份验证,而不是直接输入用户密码呢?
答案1
简单的回答是,使用密钥验证,您永远不会通过网络发送密码(密码是在本地输入以验证密钥),因此网络上的其他人没有机会拦截任何密码尝试。它更安全。
至于您提到的必须不断输入密码的问题,有些代理(最著名的是 PuTTY 的 pagent)会将密钥缓存在内存中,因此您只需输入一次密码。这非常方便。
答案2
如果有人以某种方式窃取了你的密钥,你就受到威胁了。
Putty 包含一个名为 Pagent 的东西(如果您使用了安装程序),您可以在其中加载密钥文件,并且只需输入一次密码。密钥增加了另一层安全性,因为简单地强行破解密码不会有任何用处,因为他们也需要密钥。