题 我的密码是否被泄露,因为我在ssh用户名后忘记按Enter键?


我刚尝试登录 Fedora的 (发布13 Goddard)服务器使用SSH(PuTTY,Windows)。出于某种原因 输入 键入我的用户名后没有通过,我输入了我的密码,然后再次按Enter键。我才意识到自己的错误 服务器很开心地迎接我

名为myUsername 我的密码@ server.example.com的密码:

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

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

更新 

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

enter image description here

替换where-was-it-again“自动登录用户名”选项

enter image description here

正如所解释的,我还会更频繁地开始使用ssh密钥 在PuTTY文档中


142
2017-10-19 12:29




这是一个非常好的问题。我想我们都在某个时间点意外地将UsernamePassword输入到某种服务中。这太容易了。 - user606723
另一个合理规律地更改密码的好理由。 - Jonas
您可以通过告诉ssh客户端连接到username@server.example.com来避免这种情况。然后你只会被提示输入密码,这样就不可能发生意外。但更好的方法是使用公钥/私钥。 - Kevin
@Iceman感谢你提示 - 因为我知道PuTTY隐藏了用户名 Connection/Data/Login details/Auto-login username 我从未想到“主机名(或IP地址)”字段也可以接受username @ hostname,就像正确的命令行ssh客户端一样。 - Jonas Heidelberg
使用基于密钥的身份验证。 - Zoredache


答案:


简而言之:是的。

# 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

149
2017-10-19 12:35





如果我记得很清楚,如果日志级别设置为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是隐藏的


21
2017-10-19 12:31



您的IP不会被隐藏,它们只是作为罗马数字发布。 - Bart Silverstrim
或咒骂。 - Sirex
或者它是互联网上十几岁男孩的圣地 - 色情的知识产权。 - deanWombourne


或者为了额外的安全性和便利性,您应该考虑设置SSH密钥......

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

你得到......

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

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

#cat~ / .ssh / config
主持人*
IdentityFile~ / .ssh / ddopson_employer_id_rsa

Cat公钥的内容(将是一行):

#cat~ / .ssh / id_dsa.pub
ssh-rsa AAAAB3NzaC1kc3MAAACBAOOVBqYHAMQ8J ... BbCGGaeBpcqlALYvA == ddopson @ hostname

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

侧注:pubkey行以人类可读的字符串结尾,如“ddopson @ hostname”。您可以将其更改为更准确地描述您正在使用的密钥(例如,如果您有很多密钥)。该字符串不用作身份验证的一部分,仅用于描述其他人的关键。

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

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


10
2017-10-19 21:11



我本应该添加一个 windows-clients 标记到我的问题。 这个怎么样 解释了如何使用PuTTY使用ssh密钥。 - Jonas Heidelberg
你可以用PuTTY做同样的事情。您可以将密钥添加到PuTTY,或使用PuTTYgen生成密钥。同样的故事,不同的命令。 (我认为它在连接参数的身份验证选项卡中)。 - Dave Dopson


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

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

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

如果您的密码保护非常敏感的信息或关键资源,我不会这样做。这取决于您的密码的敏感程度。


0
2017-10-19 22:00