desarrollo-web-br-bd.com

¿Cómo forzar al cliente ssh a usar solo la autenticación de contraseña?

Si uso pubkey auth de, por ejemplo, un Ubuntu 11.04, ¿cómo puedo configurar el cliente ssh para usar solo la autenticación de contraseña en un servidor? (solo es necesario debido a las contraseñas de prueba en un servidor, donde inicio sesión de forma predeterminada con la clave)

Encontre un camino:

mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.backup

y ahora se me solicita la contraseña, pero ¿hay alguna forma oficial?

414
LanceBaynes

Hace poco también necesitaba esto, y se me ocurrió esto:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com

Debe asegurarse de que el cliente no esté configurado para no permitir la autenticación de contraseña.

636
scoopr

He descubierto un atajo para este propósito:

ssh user:@example.com

Tenga en cuenta los dos puntos (:) y la contraseña vacía después de ella.

174
Halil Özgür

Además del método publicado por scoopr, puede establecer las opciones por Host en el archivo de configuración del cliente ssh.

En tus .ssh directorio, cree un archivo llamado config (si aún no existe) y establezca los permisos en 600, puede crear secciones que comienzan con

Host <some hostname or pattern>

y luego establezca las opciones por Host después de eso, por ejemplo,

Host bob.specific.foo
user fred

Host *.home.example
user billy
port 9191

para que pudieras tener

Host server.to.test
PubkeyAuthentication=no

en ese archivo, y luego simplemente

ssh server.to.test

y la opción será recogida.

38
EightBitTony

Hace poco necesitaba esto, pero ninguna de las opciones anteriores funcionó, ssh -v mostró que las opciones de línea de comandos pasaron a través de -o switch fueron anulados por los valores especificados en mi ~/.ssh/config archivo.

Lo que funcionó fue esto:

ssh -F /dev/null <username>@<Host>

Desde la página de manual ssh:

 -F configfile
     Specifies an alternative per-user configuration file.  If a
     configuration file is given on the command line, the system-wide
     configuration file (/etc/ssh/ssh_config) will be ignored. The default 
     for the per-user configuration file is ~/.ssh/config.

Créditos a esta respuesta: ¿Cómo puedo hacer que ssh ignore .ssh/config?

14
adeelx

Intenté algunas de estas respuestas, pero ssh -v seguía mostrando que mis claves públicas se sacaban de mi directorio personal. Sin embargo, especificar un archivo de identidad falso hizo el truco para mí:

ssh -i /dev/null Host

Tengo que hacer esto de forma permanente (para evitar el servidor SSH roto en una PDU montada en bastidor APC - permanecer lejos lejos de estas cosas si te importa la seguridad, así que terminé poniendo la opción en mi archivo de configuración:

Host apc1 apc2
KexAlgorithms +diffie-hellman-group1-sha1
IdentityFile /dev/null
6
miken32

Y también asegúrese, no hay BatchMode=yes activo en .ssh/config. De lo contrario, no tiene ninguna posibilidad de obtener un mensaje interactivo de contraseña.

2
Gunnar Tiedt

Puede que sea el único en el mundo con este problema, pero tuve un ssh de otro sistema operativo en ejecución (choco ssh en Windows en un Cygwin Shell) visto a través de which ssh

Entonces la solución fue

 /usr/bin/ssh [email protected]

Tenga en cuenta la ruta completa. Lo hice después de correr cyg-get openssh

1
Jonathan

Las respuestas de @scoopr y @Halil Özgür no me funcionaron.

Esto funcionó para mí:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]

Fuente: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-Host-key-checking.html

1
shrx