Como configurar o sshd para que ele nunca solicite uma senha para um usuário específico?

2

Eu tenho uma conta de sistema dedicada chamada "git" que é gerenciada pelo gitlab / gitolite. Os usuários que se conectam a essa conta sempre usam chaves SSH, o usuário "git" não tem uma senha. Se os usuários se conectarem sem uma chave SSH ou com uma chave configurada incorretamente, ficarão confusos ao serem solicitados por uma senha. Estou procurando uma maneira de configurar o servidor para que, em tal caso, ele não solicite uma senha e, em vez disso, exiba algum tipo de mensagem amigável ("Sua chave está ausente ou é inválida" etc.) e solta a conexão. É possível, seja na configuração do sshd, ou de alguma outra forma (talvez PAM)?

Note que não estou perguntando como configurar conexões sem senha pública / privada. Apenas como evitar que o servidor solicite uma senha para um único usuário específico.

(Eu entendo que tal configuração revela a um potencial invasor que o usuário "git" existe no sistema. Mas como "git" não tem senha e um invasor pode determinar sua existência de qualquer maneira, considero apenas um risco baixo. )

    
por Petr Pudlák 19.02.2013 / 18:29

1 resposta

4

Você pode desativar logins de senha para esse usuário específico. Você não pode fornecer uma mensagem específica, mas pelo menos não será solicitada uma senha. Adicione o seguinte em /etc/ssh/sshd_config :

Match user git
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    
por 19.02.2013 / 18:38