【问题标题】:Where to find sshd logs on MacOS sierra在哪里可以找到 MacOS sierra 上的 sshd 日志
【发布时间】:2017-09-09 00:26:55
【问题描述】:

我想在我的 Mac OS Sierra (10.12.4) 上安装伪分布式 HBase 环境,它需要安装 ssh 并且可以使用ssh localhost 登录而无需密码。但有时我在使用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

&lt;tab&gt;在这里表示制表符,并重新加载配置:

$ killall -HUP syslogd

但是当我执行ssh localhost 时,在/var/log 文件夹中找不到sshd.log 文件。我也试过配置/etc/asl.log:

> /var/log/sshd.log format=raw
? [= Facility auth] file sshd.log

结果还是一样,谁能帮帮我?

【问题讨论】:

    标签: macos logging sshd


    【解决方案1】:

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

    在超级用户窗口中

    # 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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        试试这个

        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

        【讨论】:

        • 为什么不简单地修改 /System plist 而不是创建一个新的 /Library 呢?
        • 编辑:见我的评论here
        【解决方案4】:

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

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

        【讨论】:

        【解决方案5】:

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

        重要:

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

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

        【讨论】:

          【解决方案6】:

          有一些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

          不是很有指导意义。我怀疑是否可以获得更多。 sshd_config 中的 LogLevel VERBOSE 和 LogLevel DEBUG3 没有帮助。

          根据 man sshd_config : “使用 DEBUG 级别登录会侵犯用户隐私,不建议使用。”

          顺便说一句,我重新启动 sshd 不是使用 launchctl,而是使用系统偏好设置共享,勾选远程登录。

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

          我怀疑这个设置在 /etc/ssh/sshd_config 之外 (易于检查,但我没有时间)。

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

          【讨论】:

            猜你喜欢
            • 2018-07-02
            • 2020-04-01
            • 1970-01-01
            • 2011-02-03
            • 2018-10-31
            • 2019-11-11
            • 2023-03-15
            • 1970-01-01
            • 2019-06-03
            相关资源
            最近更新 更多