我想在我的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
结果是一样的,有人可以帮助我吗?
答案 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
不太有启发性。我怀疑是否可以获得更多。 1}}和LogLevel VERBOSE
在sshd_config中没有帮助。
根据man sshd_config: &#34;使用DEBUG级别进行登录会侵犯用户的隐私,因此不建议这样做。&#34;
顺便说一下,我没有使用launchctl重新启动sshd,而是使用系统首选项共享,勾选远程登录。
在那里,我注意到了选项:允许访问......
我怀疑这个设置是OUTSIDE / etc / ssh / sshd_config (很容易检查,但我没有时间)。
请注意,Mac OS X不是Unix:Apple开发人员可以在幕后做很多奇怪的事情而不需要任何关心我们的命令行用户。