Eu pessoalmente não recomendaria essa solução, mas estou postando isso para fins de discussão.
Se você estiver disposto a:
- Alterar o nível de log do SSHd
- Conceda acesso ao seu script para / var / log / secure (ou arquivo de log equivalente)
Você pode definir "LogLevel DEBUG" em sshd_config para obter as seguintes entradas sempre que uma chave ssh for usada com êxito para autenticação:
Aug 13 11:51:13 myhost sshd[20195]: debug1: matching key found: file /home/myuser/.ssh/authorized_keys, line 3
Aug 13 11:51:13 myhost sshd[20195]: Found matching DSA key: 00:aa:bb:cc:dd:ee:00:c0:0b:fa:ce:00:00:ab:cd:ef
Escrever um script para analisar os logs e recuperar as informações relevantes seria trivial. Você provavelmente poderia grep por "sshd [$ PPID]" para reduzir as linhas que o script tem que mutar.
Observe que alterar o nível de log para DEBUG aumentará o tamanho de seus logs e poderá violar a privacidade dos usuários. De "man sshd_config":
Logging with a DEBUG level violates the privacy of users and is not recommended.
Tenho certeza de que existem várias etapas que podem ser tomadas para tornar essa solução um pouco menos medonha (por exemplo, registrando informações de DEBUG do sshd em um arquivo diferente e controlando o acesso a esse arquivo e ao script), mas no final ainda vai fazer você se encolher.