web-dev-qa-db-ja.com

MacOS Sierraの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でデバッグログを出力する方法を知っていますが、/etc/ssh/sshd_config設定と2行あります。

#SyslogFacility AUTH
#LogLevel INFO

これらの2行はデバッグモードの設定に使用されると思います。その後、#を削除し、LogLevelDEBUG3に設定してから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の設定も試みました:

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

そして結果は同じでした、誰かが私を助けることができますか?

10
Zongshu Lin

/var/log/system.logにあります。 「sshd」でフィルタリングする方が良い:

cat /var/log/system.log | grep sshd
7
Ignacio Pérez

アップルは、いつものように、車輪を再発明することを決めました。

スーパーユーザーウィンドウ内

# 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
5
jerrythea

これを試して

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

4
Shani

また、さらにデバッグしたいsshの問題があり、sshdのデバッグログを通常の場所に表示する方法を見つけることができませんでした。 /System/Library/LaunchDaemons/ssh.plistファイルを編集して-E <log file location>パラメーター(/tmp/sshd.logなど)を追加することに頼りました。 Log_Levelを変更するために/etc/ssh/sshd_configも編集しました。これらの変更により、指定されたログファイルでより詳細なログを表示できました。

私はMacOSの経験があまりないので、これを設定するためのより正しい方法があると確信していますが、より良いアプローチがないため、探しているログがありました。

3
AndyW

Appleの 開発者Webサイト によると、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:/

1
Matt

いくつかの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レベルでのログ記録はユーザーのプライバシーに違反するため、お勧めしません。」

ちなみに、launchctlではなく、システム設定の共有でsshdを再起動し、リモートログインにチェックを入れました。

そこに、私はオプションに気づいた:アクセスを許可する...

この設定は/ etc/ssh/sshd_configの外側にあると思われます(確認は簡単ですが、時間がありません)。

Mac OS XはUnixではないことに注意してください。Apple開発者は、コマンドラインユーザーに気を付けずに、舞台裏で多くの奇妙なことを行うことができます。

0