ssh
登录时会遇到错误。最重要的是问题背景,实际问题是我在哪里可以找到
sshd
的调试日志,所以我知道为什么记录进一步失败了?
我知道,Mac OS已经安装了并使用
sshd
来管理它,并且我知道一种通过
launchd
输出调试日志的方法,但是当我审查了sshd -E /var/log/sshd.log
配置时,有两行:
/etc/ssh/sshd_config
我猜想这两行用于配置调试模式,然后我删除了
#SyslogFacility AUTH
#LogLevel INFO
,然后将
#
设置为LogLevel
,然后重新启动DEBUG3
::
sshd
然后我将日志路径设置为
$ launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
$ launchctl load -w /System/Library/LaunchDaemons/ssh.plist
:
/etc/syslog.conf
auth.*<tab>/var/log/sshd.log
在这里表示tab字符,然后重新加载配置:
<tab>
但是,当我执行
$ killall -HUP syslogd
时,在sshd.log
文件夹中找不到文件。我还尝试了配置
/var/log
:
:
ssh localhost
结果是一样的,有人可以帮助我吗?
像往常一样,苹果决定重新发明轮子。 在超级用户窗口
/etc/asl.log
> /var/log/sshd.log format=raw
? [= Facility auth] file sshd.log
超级用户窗口中的back
# log config --mode "level:debug" --subsystem com.openssh.sshd
# log stream --level debug 2>&1 | tee /tmp/logs.out
在超级用户窗口,还原默认的SSHD记录
$ ssh localhost
$ exit
您可以在/var/log/system.log中找到它。如果您通过“ sshd”过滤:
^C (interrupt)
# grep sshd /tmp/logs.out
2019-01-11 08:53:38.991639-0500 0x17faa85 Debug 0x0 37284 sshd: (libsystem_network.dylib) sa_dst_compare_internal <private>@0 < <private>@0
2019-01-11 08:53:38.992451-0500 0xb47b5b Debug 0x0 57066 socketfilterfw: (Security) [com.apple.securityd:unixio] open(/usr/sbin/sshd,0x0,0x1b6) = 12
...
...
CP/System/library/launchdaemons/ssh.plist/library/launchdaemons/ssh.plist
然后 Vi/library/launchdaemons/ssh.plist添加您的-e,如下所示
# log config --mode "level:default" --subsystem com.openssh.sshd
我也有一个SSH问题,我想进一步调试,无法弄清楚如何使SSHD调试日志出现在任何通常的地方。我求助于编辑
grep sshd /var/log/system.log
文件以添加
<array>
<string>/usr/sbin/sshd</string>
<string>-i</string>
<string>-E</string>
<string>/var/log/system.log</string>
</array>
参数(例如/tmp/sshd.log)。我还编辑了/System/Library/LaunchDaemons/ssh.plist
更改loglevel。 通过这些更改,我能够查看指定日志文件中更多的详细日志。
根据Apple的
开发人员网站,MACOS 10.12及以上的记录行为发生了变化:
最重要的:
ios 10.0及以后的MacOS 10.12及更高版本,TVOS 10.0及更高版本,以及WatchOS 3.0及以后的ununified Logging以及Syslog API。从历史上看,日志消息被写入磁盘上的特定位置,例如/etc/system.log。统一记录系统将消息存储在内存和数据存储中,而不是写入基于文本的日志文件。 不幸的是,除非有人提出了一种非常聪明的方法来从内存或这个神秘的“数据存储”中提取日志条目,否则我认为我们是sol:/
/var/log/system.log例如,例如
-E <log file location>
不是很有启发性。 我怀疑是否可以获得更多。 sshd_config中的/etc/ssh/sshd_config
通过方式,我对SSHD进行了重新启动,而不是通过启动CTCTL,而是通过系统偏好共享,滴答远程登录。 ,我注意到了选项:允许访问...
我怀疑此设置在户外/etc/ssh/sshd_config (易于检查,但我没有时间)。 Mac OS X不是Unix:Apple开发者可以在场景后面做许多奇怪的事情,而无需注意我们的命令行用户。