SSH: Como encontramos o mecanismo de autenticação do usuário usado na configuração do sshd em tempo de execução?

1

Gostaria de modificar o arquivo sshd_config para executar um script se o usuário ssh entrar com a senha e outro script se o usuário ssh no servidor usar o certificado assinado SSH. Eu vejo, isso pode ser possível com a combinação de correspondência e ForceCommand, mas estou tendo dificuldade em entender como identificar se o usuário usou PasswordAuthentication para entrar ou SSH Cert para entrar no servidor.

Por exemplo, algo como abaixo:

Match (Se o usuário usou a senha) ForceCommand / usr / sbin / passwordscript

Correspondência (se o usuário usou o pubkey) ForceCommand / usr / sbin / pubkeyscript

Correspondência (se o usuário usou TrustedUserCAKeys (?)) ForceCommand / usr / sbin / sshcertdscript

Existe alguma maneira que eu possa encontrar como o usuário está tentando fazer ssh no servidor se é uma senha, chave pública ou TrustedUserCAKeys (SSH Cert)?

Obrigado antecipadamente ..

    
por Quick Learner 11.05.2018 / 10:43

1 resposta

1

Em authorized_keys file , você pode especificar um comando a ser usado ao autenticar com um par de chaves específico. Você também pode definir uma variável de ambiente usando a opção environment :

command="/path/script",command="KEY_WAS_USED=yes" ssh-rsa ...

E então você pode verificar a existência da variável em algum script de inicialização para executar seu script "não-chave" (senha).

    
por 11.05.2018 / 11:03