¿Cómo deshabilitar la solicitud de contraseña desde el lado del cliente ssh?

9

Tengo un script que se basa en la autenticación ssh de clave pública / privada. El problema es que algunos sistemas están mal configurados y no tienen configurada la confianza de clave pública / privada ssh adecuada. Cuando eso suceda, sshsolicite una contraseña que bloquee la ejecución del script. He intentado este comando:

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

Pero todavía me solicitan la contraseña de root.

Grillo rojo
fuente
Después de la prueba y error, encontré la opción que necesitaba. "PreferredAuthentications=publickey"
Red Cricket
¿Es eso mejor que la solución propuesta? (BatchMode)
tocado el

Respuestas:

9

La forma canónica de hacer esto es con la BatchModeopción:

ssh -o BatchMode=yes …

De acuerdo con el manual :

Si se establece en "sí", la consulta de frase de contraseña / contraseña se deshabilitará. Esta opción es útil en scripts y otros trabajos por lotes donde no hay ningún usuario presente para proporcionar la contraseña.

Sin embargo, hubiera esperado que la combinación de PasswordAuthentication=noy ChallengeResponseAuthentication=nofuera suficiente. ssh -vvpodría dar una pista.

Gilles 'SO- deja de ser malvado'
fuente
¡Eso también 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