当ssh
您使用不受信任的公共 Wi-Fi(咖啡厅、图书馆、机场等)时,您输入的连接密码是否会被拦截。
答案1
您当然可以在公共 Wi-Fi 网络上捕获数据包,但如果您使用 SSH 并且您的密码没有以明文形式发送,则需要相当多的时间才能解密您将捕获的内容。
答案2
SSH 被设计为可在不受信任的网络上使用。 Wifi、有线,都没关系:SSH 假设所有流量都可以被攻击者监控,甚至攻击者会尝试拦截数据包并用不同的数据包替换它们。
第一次从特定客户端运行 ssh 到特定服务器时,ssh 会询问您
The authenticity of host 'example.com (192.0.2.42)' can't be established.
RSA key fingerprint is 01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef.
Are you sure you want to continue connecting (yes/no)?
此时,您需要检查远程服务器的身份(由密钥指纹给出)是否是您期望的身份;攻击者可能试图冒充服务器。一旦进行了此验证,并且对于从该客户端到该服务器的每个后续连接,您可以相信该通信不会被窃听者监视并且可靠(因为您键入的命令确实会发送到服务器,并且响应实际上是服务器发送的那些)。
窃听者无法获取 ssh 会话中的数据,但他们可以观察流量及其时间。这可能会泄露机密数据;以交互方式输入的密码尤其面临风险:它们在连接开始时很容易识别,并且它们是逐个字符发送的,因此窃听者可以测量击键之间的时间,并且每种测量都使她更容易一些猜测密码(更轻松并不意味着简单的!)。此弱点不会影响公钥身份验证,出于安全性和可用性的考虑,建议使用公钥身份验证而不是密码。
答案3
SSH 是加密的。但经验法则是,即使很困难,您也不应该假设通过公共渠道发送的任何内容都不会被窃听。
我曾经走进过关于 SSH 密码如何容易受到统计分析的文章——这是破解凭证的一种方法。
密码能被嗅探,只是不容易得到对应的明文。
您还可以探索其他身份验证策略,例如公钥-私钥对,它可能不像密码那么容易破解(只要您无法快速分解质数)。