是否因为忘记了ssh用户名后按Enter键而导致密码泄露?


142

我刚刚尝试使用SSH(PuTTY,Windows)登录Fedora(第13版Goddard)服务器。出于某种原因,Enter输入用户名后没有通过,我输入了密码,然后再次按Enter。当服务器满意地向我打招呼我才意识到自己的错误

myusername MYPASSWORD @ server.example.com的密码:

此时,我断开了连接,并在该计算机上更改了密码(通过单独的SSH连接)。

...现在我的问题是:这样的登录失败是否以纯文本格式存储在任何日志文件中?换句话说,下次他扫描日志时,我是否只是将我(现在已过期)的密码强加在远程管理员的面前?

更新资料

感谢您对隐含的问题“将来如何防止这种情况”的所有评论。为了实现快速的一次性连接,我现在将使用此PuTTY功能:

在此处输入图片说明

再次替换“自动登录用户名”选项

在此处输入图片说明

我还将开始更频繁地使用ssh键,如PuTTY docs中所述


4
这是一个非常好的问题。我认为我们都在某个时间点不小心将UsernamePassword键入了某种服务。这太容易了。
2011年

2
另一个合理理由定期更改密码。
乔纳斯(Jonas)

25
您可以通过告诉ssh客户端连接到username@server.example.com来避免这种情况。然后,只会提示您输入密码,这样就不可能发生事故。不过,更好的办法是只使用公共/私有密钥。
凯文

1
@Iceman感谢您的提示-因为我知道PuTTY Connection/Data/Login details/Auto-login username会将用户名隐藏在它下面,所以我从未想到过“主机名(或IP地址)”字段也可以接受username @ hostname,就像正确的命令行ssh客户端一样。
乔纳斯·海德堡

4
使用基于密钥的身份验证。
Zoredache

Answers:


148

简而言之:是的。

# ssh 192.168.1.1 -l "myuser mypassword"
^C
# egrep "mypassword" /var/log/auth.log
Oct 19 14:33:58 host sshd[19787]: Invalid user myuser mypassword from 192.168.111.78
Oct 19 14:33:58 host sshd[19787]: Failed none for invalid user myuser mypassword from 192.168.111.78 port 53030 ssh2

21

如果我还记得的话,如果将日志级别设置为DEBUG或TRACE,则它确实已在日志中注册。

编辑:确认,我试图登录我的服务器并在我的日志中找到了它。

Oct 19 14:34:24 sd-xxxx sshd[26563]: pam_unix(sshd:auth): authentication failure; logname=     uid=0 euid=0 tty=ssh ruser= rhost=xxx-xxx-xxx-xxx.rev.numericable.fr 
Oct 19 14:34:26 sd-xxxx sshd[26563]: Failed password for invalid user toto from xxx.xxx.xxx.xxx port 56685 ssh2

注意:IP是隐藏的


51
您的IP未被隐藏,它们只是以罗马数字形式发布。
巴特·西尔弗斯

2
或专有名词。
Sirex

8
还是互联网上十几岁男孩的圣地-色情的IP。
deanWombourne 2011年

10

或者为了增加安全性和便利性,您应该真正考虑设置SSH密钥...

#ssh-keyget -t rsa
(接受所有默认设置)

你得到...

〜/ .ssh / id_rsa
〜/ .ssh / id_rsa.pub

旁注:如果添加〜/ .ssh / config,则可以使用以下内容来重命名密钥文件:

#猫〜/ .ssh / config
主持人*
IdentityFile〜/ .ssh / ddopson_employer_id_rsa

列出您的公共密钥的内容(将是一行):

#猫〜/ .ssh / id_dsa.pub
ssh-rsa AAAAB3NzaC1kc3MAAACBAOOVBqYHAMQ8J ... BbCGGaeBpcqlALYvA == ddopson @ hostname

现在登录到目标框,并将该行粘贴到〜/ .ssh / authorized_keys中。

旁注:pubkey行以易于阅读的字符串结尾,例如“ ddopson @ hostname”。您可以更改它以更描述您所使用的密钥(例如,如果您有很多密钥)。该字符串不用作身份验证的一部分,仅用于描述其他人的密钥。

而已。现在,当您SSH到主机时,甚至不会提示您输入密码。

如果您担心存储私钥(id_rsa),可以在密钥本身中添加一个密码短语(请参阅ssh-keygen),以防止任何有权访问您文件的人使用它。然后,您可以使用ssh-agent解密密钥并将其安全地存储在内存中,以便可以将其用于多个SSH连接。


我可能应该在windows-clients问题中添加标签。此方法说明了如何使ssh密钥可用于PuTTY。
乔纳斯·海德堡

您可以使用PuTTY进行完全相同的操作。您可以将密钥添加到PuTTY中,或使用PuTTYgen生成密钥。相同的故事,不同的命令。(我认为它在连接参数的身份验证选项卡中)。
戴夫·多普森

0

密码在传输时已加密。是的,您的密码可能已被泄露,因为它被打印在目标服务器的日志中。但是,我还要说的是,每次在计算机上输入密码时,由于计算机上可能装有间谍软件或键盘记录器,因此可能会受到影响。

如果您是该系统的唯一管理员,并且您认为该系统没有受到破坏,那么您可以相对确定地假设您的密码没有受到破坏,就像您通常认为计算机上没有间谍软件一样,因为您没有目睹了任何可疑的事情。您可以在该服务器上编辑日志,并删除对密码的引用。

此事件是为什么使用SSH密钥而不是密码更好的原因之一。然后,即使有人获得了您在计算机上输入的用于解密计算机上的私钥的密码,他们仍然将无法访问远程服务器。他们也需要私钥文件本身。安全是关于层的。没有什么是完美的,但是如果您添加了足够多的层,那么攻击者就很难继续前进,否则您将抓住它们,因为这需要更多时间。

如果您的密码保护了非常敏感的信息或重要资源,我将不会执行上述操作。这取决于密码的敏感程度。

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.