当您不小心尝试使用密码凭据连接到错误的服务器时,管理员是否可以读取和记录您使用的密码?
PasswordAuthentication no
默认在OpenSSH中进行设置,并且仅在受信任的服务器上启用(如果需要)。以严格的主机密钥检查相结合,这应该主要是保护你暴露你的密码,在过程中的便利性为代价。
ChallengeResponseAuthentication no
太,我认为
当您不小心尝试使用密码凭据连接到错误的服务器时,管理员是否可以读取和记录您使用的密码?
PasswordAuthentication no
默认在OpenSSH中进行设置,并且仅在受信任的服务器上启用(如果需要)。以严格的主机密钥检查相结合,这应该主要是保护你暴露你的密码,在过程中的便利性为代价。
ChallengeResponseAuthentication no
太,我认为
Answers:
简单地说:是的
更多详情...
如果您连接到我的机器,则您不知道我是在运行普通ssh
服务器,还是已经修改以写出所通过密码的服务器。
此外,我不一定需要进行修改sshd
,但可以编写一个PAM模块(例如使用pam_script
),该模块将通过您的密码。
所以,是的。 永远不要将您的密码发送到不受信任的服务器。机器的所有者可以轻松地将其配置为记录所有尝试输入的密码。
(实际上,这在信息安全世界中并不罕见;设置一个蜜罐服务器来记录尝试输入的密码)
sshd
也没有密码登录。(如果您输入密码作为登录名,则将其记录下来,但这是另一个问题)。该标准sshd
是一种安全工具,因此不会记录这样的凭据:-)
是。
建立加密连接后发送密码,但远程服务器以纯文本格式获取密码。
如果您担心的话,最好,最简单的解决方案是使用SSH密钥。
如果您的机器无法接受密钥,那么一种解决方案是创建一个安全存储密码的工具,然后sshpass
根据所连接的服务器始终发送正确的密码。
现在,密码以明文形式发送的原因是,它会将处理和存储密码的所有决定留给了远端,并且客户端可以完全傻了。在过去十年左右的时间里,Linux和BSD系统中使用了两种不同的密码哈希(存储)格式(crypt(3)),它们都不需要客户端的支持。
尽管那也部分是由于历史原因(即一直都是这样)。有更好的质询响应身份验证协议,即使密码也可以使用。例如SRP,它在身份验证期间为双方提供了共享的机密。它已为某些SSH服务器实现,但是OpenSSH的修补程序适用于(非常旧的)旧版本。
为了建立斯蒂芬·哈里斯(Stephen Harris)的答案,这是我构建的实时视图,该视图显示了通过ssh(某种蜜罐)连接到盒子时,修改后的PAM身份验证脚本将能够捕获的内容。我使用了PAM库lib-storepw的修改版本。
SSH是一种需要相互信任的协议。因此,OpenSSH客户端维护一个known_hosts文件,以实现其对首次使用方案的信任。
当您尝试登录SSH服务器时,无论是谁提供了该软件或该软件配置了要记录的数据,都在参与某些身份验证过程。使用密码验证时,您正在将密码传输到该服务器。这就是为什么建议使用非对称加密(公共密钥,证书)的原因之一-公共密钥加密极大地降低了泄露凭据的风险。(尽管如果使用ssh-agent转发或类似方案,这可能无法保护您免受MitM攻击。)