web-dev-qa-db-fra.com

Où trouver les journaux sshd sur MacOS sierra

Je souhaite installer l’environnement HBase pseudo-distribué sur mon Mac OS Sierra (10.12.4). Ssh doit être installé et peut se connecter avec ssh localhost sans mot de passe. Mais parfois, je rencontrais des erreurs lorsque j'utilisais ssh pour me connecter. Avant tout, la question est de fond et la question est de savoir où puis-je trouver les journaux de débogage de sshd afin de savoir pourquoi l'échec de la journalisation échoue?

Comme je le sais, sshd est déjà installé dans Mac OS et utilise launchd pour le gérer. Je connais un moyen de générer les journaux de débogage par sshd -E /var/log/sshd.log, mais lorsque j’ai révisé la configuration /etc/ssh/sshd_config et qu’il existe deux lignes:

#SyslogFacility AUTH
#LogLevel INFO

Je suppose que ces deux lignes sont utilisées pour configurer le mode de débogage, puis j'ai supprimé # avant eux et défini LogLevel sur DEBUG3, puis redémarré sshd:

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

Et puis j'ai défini le chemin du journal dans /etc/syslog.conf:

auth.*<tab>/var/log/sshd.log

<tab> signifie ici le caractère de tabulation et a rechargé la configuration:

$ killall -HUP syslogd

Mais le fichier sshd.log ne peut pas être trouvé dans le dossier /var/log lorsque j'ai exécuté ssh localhost. J'ai aussi essayé de configurer le /etc/asl.log:

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

Et le résultat était le même, quelqu'un peut-il m'aider?

7
Zongshu Lin

Vous pouvez le trouver dans /var/log/system.log. Mieux vaut filtrer par "sshd":

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

J'avais également un problème ssh que je souhaitais déboguer davantage et je ne pouvais pas trouver comment faire en sorte que les journaux de débogage sshd apparaissent à l'un des emplacements habituels. J'ai eu recours à l'édition du fichier /System/Library/LaunchDaemons/ssh.plist pour ajouter un paramètre -E <log file location> (/tmp/sshd.log, par exemple). J'ai également édité /etc/ssh/sshd_config pour changer le LogLevel. Avec ces modifications, j'ai pu afficher les journaux les plus détaillés dans le fichier journal spécifié.

Comme je n'ai pas beaucoup d'expérience avec MacOS, je suis certain qu'il existe un moyen plus correct de le configurer, mais faute d'une meilleure approche, les journaux que je cherchais ont été obtenus.

3
AndyW

Essaye ça

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

Ensuite 

vi /Library/LaunchDaemons/ssh.plist

Et ajoutez votre -E comme indiqué ci-dessous

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

Et enfin, redémarrez sshd. Vous verrez maintenant les journaux sshd dans /var/log/system.log.

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

3
Shani

Selon le site Web developer de Apple , le comportement de journalisation a changé dans macOS 10.12 et versions supérieures:

Important:

La journalisation unifiée est disponible dans iOS 10.0 et versions ultérieures, macOS 10.12 et versions ultérieures, tvOS 10.0 et versions ultérieures, et watchOS 3.0 et versions ultérieures. Elle remplace ASL (Apple System Logger) et les API Syslog. Historiquement, les messages de journal étaient écrits dans des emplacements spécifiques sur le disque, tels que /etc/system.log. Le système de journalisation unifiée stocke les messages en mémoire et dans un magasin de données, plutôt que d'écrire dans des fichiers journaux à base de texte.

Malheureusement, à moins que quelqu'un ne trouve un moyen assez intelligent d'extraire les entrées de journal de la mémoire ou de ce mystérieux "magasin de données", je pense que nous sommes SOL: /

0
Matt

Comme à son habitude, Apple a décidé de réinventer la roue.

Dans la fenêtre du super-utilisateur

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

Dans une autre fenêtre

$ ssh localhost
$ exit

Retour dans la fenêtre du super-utilisateur

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

Dans la fenêtre du super-utilisateur, restaurez la journalisation sshd par défaut

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