Deshabilite temporalmente la autenticación de clave pública ssh del cliente

37

¿Hay alguna manera de deshabilitar temporalmente la autenticación de clave pública cuando ssh'ing, y usar la autenticación de contraseña en su lugar?

Actualmente quiero acceder al servidor remoto, pero estoy usando otra computadora portátil, no la mía.

Al examinar ese enlace , descubrí que el comando ssh -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no host1.example.orgno funciona en todas partes. Y sí, no funciona para mí. Estoy usando: OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 mar 2012

Editar: también traté de escribir ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no pero todavía tengo "Permiso denegado (clave pública)".

Entonces, ¿hay una configuración específica que hacer en el servidor remoto para que ese comando funcione? ¿O cuándo ese comando funcionará como se espera?

Muchas gracias por los consejos.

Nsukami _
fuente
30
Si seguiste el enlace nuevamente, hubo alguien que dijo que tu método no funcionó, pero esto sí:ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no
NickW
@NikW Muchas gracias, tal vez debería haberlo mencionado, probé el comando que propones también, todavía tengo el "Permiso denegado (clave pública)".
Nsukami _
1
Acabo de resolver este problema porque mi computadora portátil tenía una TONELADA de claves, y ssh las probó todas, y me rechazaron incluso antes de tener la oportunidad de ingresar la contraseña. Gracias por preguntar.
Dallaylaen
3
@NickW Si pones tu comentario como respuesta, lo votaría.
laberinto

Respuestas:

9

Esto suena como un problema de configuración en el lado del servidor.

Si el servidor permite la autenticación de clave pública y contraseña, incluso si intenta conectarse sin un archivo de clave privada presente en el cliente, debe solicitarle una contraseña.

Si "Permission denied (publickey)" recibe el mensaje de error, entonces parece que la autenticación de contraseña no es compatible con su servidor.

Sin ver el archivo / etc / sshd_config, es difícil saberlo, pero supongo que debe asegurarse de que exista la siguiente línea:

PasswordAuthentication yes

Reinicie el servidor ssh, y cuando se conecte desde el cliente, se le pedirá una contraseña si no hay una clave privada presente, o si la clave privada no coincide con la clave pública en el servidor.

Una alternativa más segura a esto, por supuesto, sería copiar su clave privada en la computadora portátil que está utilizando, o de hecho generar una nueva clave privada para usar en esa computadora portátil y agregar la clave pública a .ssh/authorized_keys

v25
fuente
6

Simplemente haga un archivo de ID que esté en blanco.

touch $HOME/.ssh/blank

Si deja el permiso 640 o 644, ssh se quejará de que los permisos no son lo suficientemente seguros y no lo usará. Si lo cambia a 600, le pedirá una contraseña 3 veces y fallará porque no hay contraseña. Así que déjalo 640 o 644.

Luego, cuando ssh use este comando.

ssh -i $HOME/.ssh/blank servername-or-ip

Puede usar .ssh / config y establecer una entrada de host para que no use la clave, pero es menos temporal o puede crear alias para el servidor y el servidor-nokey, pero se alarga y es difícil de mantener.

shane
fuente
55
-i /dev/nullfunciona también y no necesita verificar permisos.
svvac
Los archivos en blanco / nulos no funcionan, sshdice Load key "/dev/null": invalid format, luego continúa usando las otras claves que ha configurado de todos modos, y luego no puede iniciar sesión debido a demasiados errores de autenticación.
Malvineous
Para mí esto no funcionó. Quizás mis credenciales estaban almacenadas en el llavero de gnomos.
Yaroslav Nikitenko