Onde estão meus logs sshd?

57

Não consigo encontrar meus logs sshd nos locais padrão.

O que eu tentei:

  • Não em /var/log/auth.log
  • Não em /var/log/secure
  • Um sistema procurou 'auth.log'e não encontrou nada
  • Eu definir /etc/ssh/sshd_configexplicitamente usar SyslogFacility AUTHe LogLevel INFOe reiniciado sshd e ainda não pode encontrá-los.

Estou usando o OpenSSH 6.5p1-2 no Arch Linux.

HXCaine
fonte

Respostas:

51

Tente este comando para visualizar o log do systemctl:

journalctl -u sshd |tail -100
suave
fonte
20
Isso não parece funcionar, mas journalctl _COMM=sshdfunciona.
wingedsubmariner
3
Ah, sim - o systemctl é completamente consistente e previsível, como de costume.
g33kz0r
3
Você pode usar a -fopção de seguir o log:journalctl -fu sshd
bzeaman
wingedsubmariner - Eu sei que já faz quase 4 anos, mas ... você se lembra em que distro estava na época? Eu suspeito que o arquivo de unidade na sua distribuição tenha sido chamado de "openssh" ou apenas "ssh" em vez de "sshd". A coisa com o projeto systemd é que eles consideram as distros seus usuários, e as distribuições são livres para usar os nomes que quiserem para os arquivos de unidades (como o Debian chama o servidor web do apache apache2enquanto o RedHat o chama httpd).
bobpaul
25

Uma maneira melhor de ver a última parte do log é:

journalctl -u sshd -n 100

O uso tailda saída de journalctlpode ser muito lento. Demorou 5 minutos em uma máquina onde eu tentei, enquanto o comando acima retorna instantaneamente.

eMBee
fonte
3
E você não perde a coloração da linha! Deve ser a solução superior imo
kuzyn
7

Você deve conseguir filtrar as mensagens sshdusando:

journalctl -u ssh

ou (dependendo da sua distribuição)

journalctl -u sshd

que mostrará os logs em um lessformato de estilo (você pode pesquisar /, navegar pelo PgUp, PgDown etc.).

  • -e leva você ao final dos logs.
  • -uO parâmetro filtra através do meta field _SYSTEMD_UNITque é (pelo menos no Debian) definido como ssh.service, portanto sshd, não corresponde.
  • -f segue logs em tempo real
  • -n 100exibe determinado número de linhas (útil com -f)

Como alternativa, você pode usar a filtragem de meta-campos:

journalctl _COMM=sshd

Você pode exibir todo o registro do diário com todos os meta-campos exportando para JSON:

journalctl -u ssh -o json-pretty

isso lhe daria algo como:

    ...
    "_PID" : "7373",
    "_COMM" : "sshd",
    "_EXE" : "/usr/sbin/sshd",
    "_SYSTEMD_CGROUP" : "/system.slice/ssh.service",
    "_SYSTEMD_UNIT" : "ssh.service",
    ...

Caso você queira saber como exibir apenas mensagens do kernel:

journalctl -k -f
Tombart
fonte
Você tem uma explicação para essa sintaxe estranha ( journalctl _COMM=sshd)?
Ortomala Lokni
@OrtomalaLokni -ufiltra através do campo de metadados _SYSTEMD_UNITque está no Debian definido como ssh.service. Todos os parâmetros que começam com sublinhado estão acessando metafiels. De maneira semelhante, você pode filtrar via _PIDou _TRANSPORT.
Tombart
1

Dê uma olhada na sua configuração de syslog. Mais provavelmente /etc/syslog.confou /etc/rsyslog.conf você deve procurar linhas com, authpor exemplo, na minha configuração:

auth,authpriv.* /var/log/auth.log

*.*;auth,authpriv.none -/var/log/syslog

b13n1u
fonte
4
Nenhum desses arquivos existe. Eu acredito que esses arquivos são criados por syslog-ng, enquanto que Arch substituiu que, com systemd
HXCaine
. Em Scientific Linux authpriv * Ponto para authpriv.* /var/log/securedentro do arquivo /etc/rsyslog.conf
Salem F