Você pode adicionar uma diretiva à entrada authorized_keys
de uma chave para adicionar um valor ao ambiente das sessões em que essa chave foi usada. Esta é a documentação do sshd :
environment="NAME=value"
Specifies that the string is to be added to the environment when logging in using this key. Environment variables set this way override other default environment values. Multiple options of this type are permitted. Environment processing is disabled by default and is controlled via the PermitUserEnvironment option.
Assim, a entrada authorized_keys pode ter esta aparência:
environment="SSHKEY=bob_key" ssh-rsa AAAAB3NzaC...iQ== bob@bobspc
Quando o .bashrc do usuário é executado, a presença ou ausência da variável SSHKEY indicaria se essa chave específica foi usada para autenticar ou não.
Isso obviamente não é uma solução de propósito geral. Você teria que anotar todas as entradas de chave em todos os arquivos authorized_keys com esta diretiva. E o usuário poderia subverter o cheque se tivesse acesso para alterar seus arquivos .bashrc
, authorized_keys
ou .ssh/rc
.