¿Puedo usar la autenticación de clave SSH para iniciar sesión en un sistema remoto con un nombre de usuario diferente?

17

Supongamos que tengo un sistema remoto llamado "sistema remoto" y una cuenta de usuario "foouser" en ese sistema.

Sé que en mi sistema local, puedo generar un par de claves SSH como usuario local "foouser", poner la clave pública en el archivo "/home/foouser/.ssh/authorized_keys" en "remotesystem". Cuando utilizo SSH como "buscador" de mi sistema local a "sistema remoto", SSH utiliza el par de claves para autenticarme.

Pero, ¿qué sucede si mi nombre de usuario local no es el mismo que el nombre de usuario en el sistema remoto? Es decir, ¿qué pasa si quiero SSH como usuario local "baruser" a "remotesystem"? Obviamente, tendré que generar un par de claves para "baruser" y agregar la clave pública a "/home/foouser/.ssh/authorized_keys". Entonces, debería ser capaz de "ssh foouser @ remotesystem" mientras esté conectado como "baruser" localmente, y SSH usará el par de claves para autenticar, ¿verdad?

Lo pregunto porque estoy intentando que la autenticación de clave funcione en este escenario, sin éxito. No estoy seguro de si se debe a la falta de coincidencia del nombre de usuario o a un problema de configuración con el servidor SSH en el sistema remoto.

Matt Hurne
fuente
Arranqué el lado del servidor de registro, y resultó ser un problema con los permisos en el directorio de inicio del usuario remoto. ¡Problema resuelto! Gracias a todos los que dieron respuestas.
Matt Hurne

Respuestas:

11

Sí, puedes hacer esto, tal como lo describiste.

baruser @ here ~ $ ssh-add -l
4096 10: b3: fd: 29: 08: 86: 24: a6: da: 0a: dd: c6: 1e: b0: 66: 6a id_rsa (RSA)
baruser @ here ~ $ ssh foouser @ remotesystem
mensaje motd, etc.
foouser @ remotesystem ~ $
usuario1686
fuente
Gracias por la respuesta. Sabía que no estaba loco ... :-) Debe haber algo mal con la configuración del servidor SSH del sistema remoto, lo que impide que la autenticación de clave funcione por completo.
Matt Hurne
44
Si haces "ssh -V foouser @ remotesystem" puedes obtener información sobre lo que está pasando mal. A menudo es un error de permiso en ~ / .ssh.
Paul Tomblin
44
no -V (muestra el número de versión) pero -vvv (verbosidad máxima)
Leven
10

Es un poco aparte, pero .....

Si siempre usa el mismo nombre de usuario para un servidor remoto, también puede resultarle útil agregar un host a su configuración ssh:

Host remotesystem
    User baruser

De esa manera, no necesita recordar especificar el nombre de usuario al iniciar sesión, y lo descarta cuando tenga problemas con las claves en el futuro.

marca
fuente
5

Su nombre de usuario local realmente no importa (aparte de la clave privada que tiene que residir dentro del directorio de inicio de su usuario local). Simplemente copie la clave en la authorized_keyssección del usuario remoto y funcionará.

Sören Kuklau
fuente
3

Con cualquier problema relacionado con ssh, lo primero que debe hacer es aumentar la verbosidad del cliente:

ssh usuario @ máquina -vvv

Si esto no le da una idea de lo que está mal, debe cambiar el nivel de registro en el servidor y reiniciar el demonio.

LogLevel DEBUG3

Debería encontrar la salida de depuración en /var/log/auth.log (o donde ssh esté configurado para iniciar sesión). Una vez que haya encontrado el problema, recuerde volver a configurarlo como lo encontró.

David Pashley
fuente
2

Los permisos en los directorios .ssh en ambas máquinas deben ser correctos. En general, eso significa 700 en el directorio .ssh y como máximo 755 en el directorio de inicio. Además de 600 en todos los archivos en los directorios .ssh.

Si el usuario en el sistema remoto es root, asegúrese de que root pueda ssh. (PermitRootLogin en sshd_config) y esa clave pública (PubkeyAuthentication) y, si es necesario, RSA (RSAAuthentication) están habilitadas.

Alexandre Carmel-Veilleux
fuente
¿No es la autenticación RSA un método completamente separado?
user1686
RSA es uno de los algoritmos de clave pública admitidos por SSH (junto con DSA). Era el único método en SSH1.
Alexandre Carmel-Veilleux el
2

Si tiene SE Linux habilitado, también deberá hacer lo siguiente.

Agregue la etiqueta SELinux para authorized_keysque sshd pueda acceder a ella.

semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh
Prof Mo
fuente
0

Parece que estás haciendo las cosas correctamente, pero asegúrate de que los permisos sean correctos en claves_autorizadas. Deben establecerse en 600.

Michael Gorsuch
fuente