我已经在 Windows Server 2012 上通过 cygwin (V3.2) 安装了 ssh 和 syslog-ng,并尝试从 sshd 获取日志输出。我使用的是默认的 /etc/syslog-ng/syslog-ng.conf 文件...
@version: 3.2
@include "scl.conf"
source s_local {
system();
internal();
};
source s_network {
udp();
};
destination d_local {
file("/var/log/messages");
};
log {
source(s_local);
# uncomment this line to open port 514 to receive messages
#source(s_network);
destination(d_local);
};
我的 /etc/sshd_config 文件仅包含以下未注释的行...
Port 22
SyslogFacility LOCAL5
LogLevel VERBOSE
StrictModes no
AuthorizedKeysFile /etc/authorized_keys
Subsystem sftp /usr/sbin/sftp-server -f LOCAL5 -l VERBOSE
sshd 的启动/关闭已成功记录到 /var/log/messages:
Jun 23 12:37:31 ga16irwebdev01 sshd: PID 4552: Server listening on :: port 22.
Jun 23 12:37:31 ga16irwebdev01 sshd: PID 4552: Server listening on 0.0.0.0 port 22.
Jun 23 12:37:32 ga16irwebdev01 sshd: PID 6648: `sshd' service started
但是,当我尝试从远程机器“ssh”到此机器时,日志中没有任何内容。远程 ssh 请求失败,因为 sshd 不接受我的 dsa 密钥,我正在尝试调试该问题,但无法在日志中获取任何信息。
有人可以解释为什么 sshd 不记录(失败的)连接请求吗?
更多信息...我的 /var/log 目录:
$ ls -l
total 756
-rw-r--r-- 1 GA16IRWEBDEV01+cyg_server Administrators 0 Jun 22 14:56 lastlog
-rw------- 1 SYSTEM SYSTEM 15714 Jun 23 15:58 messages
-rw-r--r-- 1 MDowd.adm Administrators 41836 Jun 23 10:40 setup.log
-rw-r--r-- 1 MDowd.adm Administrators 712122 Jun 23 10:40 setup.log.full
-rwxrwxrwx 1 GA16IRWEBDEV01+cyg_server Administrators 0 Jun 22 15:00 sshd.log
-rw----r-- 1 SYSTEM SYSTEM 0 Jun 23 10:47 syslog-ng.log
我的/dev/log:
$ ls -l | grep log
srw----rw- 1 SYSTEM SYSTEM 0 Jun 23 15:58 log
答案1
在远程机器上,尝试使用 -vvv 选项运行 ssh 以获取来自客户端的详细输出。这可能有助于解决问题。
答案2
搞定了。我发现我可以用一个简单的
logger 'testing syslog-ng'
syslog-ng 成功将消息记录到 /var/log/messages。这告诉我问题出在 sshd 没有发出任何消息。
“回到开始”并从我的源框 ping 目标框的主机名。发现请求者给我的目标框的 IP 地址不正确,指向我们网络中的另一个框。当我更正该问题并 ssh 到正确的框时,连接请求现在显示在 /var/log/messages 中。会说“真是浪费的一天”,但作为大型机恐龙,我学到了很多关于 syslog 和 sshd 的知识!谢谢!