题 如何查看sshd日志?


我安装了Ubuntu 9.10 sshd 我可以使用登录名和密码成功连接到它。我配置了一个 RSA 密钥登录,现在有“服务器拒绝我们的密钥”按预期。好的,现在我想检查一下 sshd 登录以找出问题。我检查了一下 /etc/ssh/sshd_config 它有

SyslogFacility AUTH
LogLevel INFO

好。我在看 /var/log/auth.log 并且......它是空的O_O。更改 Loglevel 至 VERBOSE 没什么好处 - auth.log 仍然是空的。任何提示我如何检查 sshd 登录?


103
2018-04-08 10:22




你检查过syslog配置了吗?我不运行Ubuntu,但它可能会将AUTH工具重定向到不同的日志文件。也许/ var / log / messages? - Prof. Moriarty
如何检查syslog配置?不幸的是,我不是很好的linux :(。 cat /var/log/messages | grep ssh 没有显示:(。 - grigoryvp
你是对的。 /etc/syslog.conf 将AUTH重定向到 /var/logauth.log。请写下你的答案,这样我就可以接受了:) - grigoryvp
在我的服务器上,sshd会记录到/ var / log / secure。这是在/etc/rsyslog.conf中配置的,在“authpriv。*”开头的行上 - Isaac Betesh
authPriv时?我们应该怎么知道与sshd有什么关系? :-) - Spencer Williams


答案:


如果此时没有其他人正在使用该系统,您可以做我在这种情况下所做的事情:

  • 停止sshd服务(至少我已经能够通过ssh登录时这样做)
  • 手动启动sshd并添加一些-d选项以获得更详细的调试输出。除非你有一些时髦的东西,否则它应该使用相同的键并在正确启动时进行配置

8
2018-04-08 11:37



在远程服务器上停止SSHD是一个非常糟糕的主意。这可能会在大多数情况下解决一些(或大多数)设置的问题,但是如果出现任何问题 - 你的连接,电源开启,健忘等等 - 你就被锁定了。哪个是坏消息。 - Sudowned
好吧,应该注意的是,手动停止服务后启动服务的唯一方法是对其进行其他类型的访问,例如另一个非SSH远程连接,或者您正坐在它前面。 - Spencer Williams
这是如何回答这个问题的?我从一个网络搜索登陆这里,希望学习如何检查SSHD日志文件,而不是因为某些问题对你有用的东西......该死的我希望Stack Exchange网络上的读者真正阅读并回答手头的问题,而不是他们想要的问题...... - jww
您可以在另一个端口上启动另一个sshd。连接到那个。然后停止主sshd并在端口22上启动一个新sshd。如果有任何失败,请使用DRAC或云管理重新启动该框。你应该在启动时启动sshd吗?别担心。 - Bruno Bronosky
@JoelESalas社区不会决定接受哪些答案。 - kasperd


根据上述评论创建答案,归功于@Prof。 Moriarty和@Eye of Hell

此处记录SSH身份验证失败 /var/log/auth.log

以下应该只给你ssh相关的日志行

grep 'sshd' /var/log/auth.log

为了安全起见,获取最后几百行然后搜索(因为如果日志文件太大,整个文件上的grep会消耗更多系统资源,更不用说运行时间会更长)

tail -500 /var/log/auth.log | grep 'sshd'


118
2018-02-19 19:56



这个答案。绿色箭头的其他答案是假的。改变箭头。 - nottinhill
为什么不用 tail -f ... 实时监控?这会是更大的日志文件的问题吗? - ingh.am
less +F ... 将实时'尾随',它比尾巴强大得多 - northben
和 lnav 甚至比少/尾更好 - Wayne Werner
P.s。:如果你的服务器是Red Hat(作为CentOS),sshd / login记录日志的路径是/ var / log / secure(检查特定日期的日志文件的/ var / log文件夹)。看到这个答案: serverfault.com/questions/465833/... - Brian Hellekin


如果您可以轻松地再次尝试失败的连接,一种简单的方法是运行:

/usr/sbin/sshd -d -p 2222

然后重试连接:

ssh -p 2222 user@host

运用 -p 2222 这样我们就不必停止主SSH服务器,这可能会阻止你。

也可以看看: https://unix.stackexchange.com/a/55481/32558


3
2017-08-13 07:13





如果要查看有关sshd的所有日志消息,请运行以下命令:

grep -rsh sshd /var/log |sort

-1
2018-06-28 14:24



日志将以条目开头 Mar 14 19:52:04 排除年份并且不容易分类(尽管你可能会幸运 sort --month-sort 假设你没有超过年份之间的界限)。日志文件本身已经排序,因此您只需按正确的顺序扫描它们。另外,递归 grep -r 在具有大型日志的系统上调用将非常慢。没有理由再扫描HTTPD日志之类的内容。 - Adam Katz


您可以 tail -f /var/log/auth.log


-1
2017-11-10 00:44



欢迎使用ServerFault。你读过这个问题吗?他没有在该文件中获取数据。 tail如果它没有任何数据,它就没用了。 - chicks
@chicks这很有趣。大多数选票的回答几乎都是这样的.. - Qback