Como desativar o prompt de senha do lado do cliente ssh?

9

Eu tenho um script que depende da autenticação ssh de chave pública / privada. O problema é que alguns sistemas estão configurados incorretamente e não têm a confiança adequada da chave pública / privada ssh configurada. Quando isso acontecer, sshsolicite uma senha para bloquear a execução do script. Eu tentei este comando:

sudo ssh -o "PasswordAuthentication=no" -o "ChallengeResponseAuthentication=no" root@last-call

Mas ainda recebo a senha de root.

Grilo vermelho
fonte
Após tentativa e erro, encontrei a opção necessária. "PreferredAuthentications=publickey"
Red Cricket
isso é melhor do que a solução proposta? (BatchMode)
knocte

Respostas:

9

A maneira canônica de fazer isso é com a BatchModeopção:

ssh -o BatchMode=yes …

De acordo com o manual :

Se definido como "yes", a consulta de senha / senha será desativada. Essa opção é útil em scripts e outros trabalhos em lotes em que nenhum usuário está presente para fornecer a senha.

Eu esperava que a combinação de PasswordAuthentication=noe ChallengeResponseAuthentication=nofosse suficiente. ssh -vvpode dar uma pista.

Gilles 'SO- parar de ser mau'
fonte
Isso também funciona! $ sudo ssh last-call-2 Password: $ sudo ssh -o "BatchMode=yes" last-call-2 Permission denied (gssapi-keyex,gssapi-with-mic,publickey,password,keyboard-interactive).
Red Cricket