我刚刚安装了 Ubuntu 12.04。我正在尝试设置 ssh 公钥身份验证。不幸的是,它拒绝工作。在详细模式下运行 ssh 客户端,我可以看到公钥被拒绝。
~/.ssh/authorized_keys 存在并且似乎具有正确的权限等。
我想做的是阅读 sshd 日志以找出它抱怨的内容。但我找不到 Ubuntu 12.04 上 sshd 的日志记录位置。我尝试谷歌搜索并检查了 /var/log/auth.log 和 /var/log/syslog,但都没有显示 sshd 消息。我在哪里可以找到守护进程日志来弄清楚发生了什么?
谢谢。
答案1
sshd
通常通过 syslog 进行记录。默认情况下,它会查找 AUTH 或 AUTHPRIV 设施,尽管您可以通过文件中的 SyslogFacility 配置选项进行修改sshd_config
。
要找出系统日志消息的去向,请查看/etc/syslog.conf
,其中包含类似以下内容的行:
authpriv.* /var/log/secure
此示例会将所有 AUTHPRIV 消息发送到/var/log/secure
。您会在系统上发现类似的内容。
答案2
实际上它应该在 /var/log/auth.log 中:
root@ubu12:/var/log# fgrep ssh auth.log|wc -l
64
此外 - /etc/ssh/sshd_config:
…
# Logging
SyslogFacility AUTH
LogLevel INFO
…
但是您可以尝试检查和改变/etc/rsyslog.d
的内容——50-default.conf
已经注释掉的条目可能对调试目的有用:
#daemon.* -/var/log/daemon.log
最后还有另一个选择——在调试模式下运行 sshd -d
:
服务器将详细调试输出发送到标准错误,而不会将自身置于后台。服务器也不会分叉,并且只会处理一个连接。此选项仅用于服务器调试。多个 -d 选项可提高调试级别。最大为 3。
— 参见man sshd
其他页面。