哪里可以找到MacOS sierra上的sshd日志

时间:2017-04-13 03:01:34

标签: macos logging sshd

我想在我的Mac OS Sierra(10.12.4)上安装Pseudo-Distributed HBase环境,它需要安装ssh并且可以使用ssh localhost无需密码登录。但有时当我使用ssh登录时我遇到了错误。最重要的是问题背景,实际的问题是我在哪里可以找到sshd的调试日志,所以我可以知道为什么日志记录失败进一步?

据我所知,Mac OS已安装sshd并使用launchd进行管理,我知道sshd -E /var/log/sshd.log输出调试日志的一种方法,但是当我审核{{}时1}}配置,有两行:

/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>

但是当我执行$ killall -HUP syslogd 时,sshd.log文件夹中找不到/var/log文件。我也试过配置ssh localhost

/etc/asl.log

结果是一样的,有人可以帮助我吗?

6 个答案:

答案 0 :(得分:4)

您可以在/var/log/system.log中找到它。如果您按“sshd”过滤更好:

cat /var/log/system.log | grep sshd

答案 1 :(得分:4)

试试这个

cp /System/Library/LaunchDaemons/ssh.plist /Library/LaunchDaemons/ssh.plist

然后

vi /Library/LaunchDaemons/ssh.plist

并添加您的-E,如下所示

 <array>
                    <string>/usr/sbin/sshd</string>
                    <string>-i</string>
                    <string>-E</string>
                    <string>/var/log/system.log</string> 
 </array>

最后重启sshd现在你会在/var/log/system.log中看到sshd日志

launchctl unload /System/Library/LaunchDaemons/ssh.plist&&&&&& launchctl load -w /Library/LaunchDaemons/ssh.plist

答案 2 :(得分:3)

我还有一个ssh问题,我想进一步调试,并且无法弄清楚如何让sshd调试日志出现在任何常见的地方。我使用编辑/System/Library/LaunchDaemons/ssh.plist文件来添加-E <log file location>参数(例如/tmp/sshd.log)。我还编辑了/etc/ssh/sshd_config来更改LogLevel。通过这些更改,我能够在指定的日志文件中查看更详细的日志。

我没有太多使用MacOS的经验,因此我确信有更正确的方法来配置它,但由于缺乏更好的方法,这就得到了我正在寻找的日志。

答案 3 :(得分:2)

苹果像往常一样,决定重新发明轮子。

在超级用户窗口中

# log config --mode "level:debug" --subsystem com.openssh.sshd
# log  stream --level debug  2>&1 | tee /tmp/logs.out

在另一个窗口中

$ ssh localhost
$ exit

返回超级用户窗口

^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
...
...

在超级用户窗口中,还原默认的sshd日志记录

# log config --mode "level:default" --subsystem com.openssh.sshd

答案 4 :(得分:1)

根据Apple的developer website,macOS 10.12及更高版本中的日志记录行为已发生变化:

  

重要:

     

统一日志记录可在iOS 10.0及更高版本,macOS 10.12及更高版本,tvOS 10.0及更高版本以及watchOS 3.0及更高版本中使用,并取代ASL(Apple System Logger)和Syslog API。历史上,日志消息被写入磁盘上的特定位置,例如/etc/system.log。统一日志记录系统将消息存储在内存和数据存储中,而不是写入基于文本的日志文件。

不幸的是,除非有人想出一个非常聪明的方法从内存或这个神秘的“数据存储”中提取日志条目,我想我们是SOL:/

答案 5 :(得分:0)

有一些sshd登录

/var/log/system.log

例如

Apr 26 19:00:11 mac-de-mamie com.apple.xpc.launchd[1] (com.openssh.sshd.7AAF2A76-3475-4D2A-9EEC-B9624143F2C2[535]): Service exited with abnormal code: 1

不太有启发性。我怀疑是否可以获得更多。 LogLevel VERBOSE在sshd_config中没有帮助。

根据man sshd_config: &#34;使用DEBUG级别进行登录会侵犯用户的隐私,因此不建议这样做。&#34;

顺便说一下,我没有使用launchctl重新启动sshd,而是使用系统首选项共享,勾选远程登录。

在那里,我注意到了选项:允许访问......

我怀疑这个设置是OUTSIDE / etc / ssh / sshd_config (很容易检查,但我没有时间)。

请注意,Mac OS X不是Unix:Apple开发人员可以在幕后做很多奇怪的事情而不需要任何关心我们的命令行用户。