Eu estou querendo saber se existe uma maneira de registrar os comandos recebidos pelo servidor. Pode ser todos os comandos SSH, desde que inclua informações sobre comandos relacionados à transferência de arquivos.
Estou tendo problemas com um cliente SFTP e o criador está solicitando logs, mas não consigo encontrar nenhum log existente.
Estou procurando fazer logon nos dois ou no CentOS ou no OS X (embora suspeite que, se for possível, seria semelhante em ambos).
As versões do OpenSSH 4.4p1 e superiores (que devem incluir a versão mais recente com o CentOS 5) têm capacidade de registro SFTP incorporada - você só precisa configurá-lo.
Encontre isso em seu sshd_config (no centos, arquivo /etc/ssh/sshd_config ):
e altere para:
INFO é apenas um nível de detalhe sobre o que você está vendo por padrão - ele fornece informações detalhadas sobre transferências de arquivos, alterações de permissão, etc. Se você precisar de mais informações, poderá ajustar o nível de log de acordo. Os vários níveis (em ordem de detalhe) são:
Qualquer coisa sobre VERBOSE provavelmente é mais informação do que você está procurando, mas pode ser útil.
Por fim, reinicie o serviço SSH para atualizar as alterações (centos):
As mesmas opções em torno do log para sftp-server também funcionam para internal-sftp. Aqui está um exemplo do meu /etc/ssh/sshd_config:
Com o registro de nível INFO ativado, as mensagens começarão a aparecer em /var/log/messages (pelo menos em distribuições baseadas em Red Hat):
Para esclarecer os comentários acima:
Se você configurou o sftp usando uma jail (ambiente chroot), não poderá efetuar login sem esforço adicional de configuração. O log não pode ser escrito no ambiente chroot, você precisa criar um mount bind ou um socket. Eu recomendaria usar um soquete, pois é um recurso fornecido pelo syslog-ng, bem como pelo rsyslog (e talvez muitos mais).
Para quem está usando syslog-ng, dê uma olhada neste link . Para aqueles que estão usando rsyslog; Espero que isso ajude .