¿La clave ssh debe llamarse id_rsa?

Pregunta:

Me he encontrado con este problema un par de veces al crear servidores de compilación con autenticación por clave.

Me preguntaba si alguien más ha experimentado esto. Tengo un par de claves para mi usuario actual que pueden conectarse a diferentes máquinas. Digamos machine1 y machine2. He pegado mi clave pública en sus respectivos archivos autorizados_keys. A la primera le he dado el nombre de la primera clave id_rsa y la segunda clave del doblador.

Cuando intento conectarme a Bender, obtengo el siguiente resultado con mi conexión ssh detallada

debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/bozo/.ssh/.ssh/identity
debug1: Trying private key: /home/bozo/.ssh/.ssh/id_rsa
debug1: Trying private key: /home/bozo/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

Solo ofrece la clave id_rsa, como puede ver arriba. ¿Es esto correcto? Si es así, ¿por qué? ¿Cómo consigo que ofrezca más claves? Sé que es un problema que veo de forma intermitente, porque yo en casa tengo varias llaves sin mucho problema.

También agradecería una descripción general sobre cómo las claves públicas y privadas interactúan con el cliente y el servidor. Pensé que tenía una idea bastante decente, pero aparentemente me estoy perdiendo algo.

Por favor y gracias.

Respuesta:

De forma predeterminada, ssh busca id_dsa e id_rsa . Las claves no tienen que ser nombradas así, puede nombrarlas mykey también, o incluso colocarlas en un directorio diferente. Sin embargo, si hace cualquiera de esos, entonces necesita hacer referencia explícita a la clave en el comando ssh así:

ssh user@server -i /path/to/mykey

Si un comando no acepta -i , por ejemplo, sshfs , use la opción IdentityFile :

sshfs -o IdentityFile=/path/to/mykey user@host:/path/on/remote /mountpoint

Cómo funciona

Al generar una clave, obtendrá dos archivos: id_rsa (clave privada) e id_rsa.pub (clave pública). Como sugieren sus nombres, la clave privada debe mantenerse en secreto y la clave pública puede publicarse al público.

La autenticación de clave pública funciona con una clave pública y una privada. Tanto el cliente como el servidor tienen sus propias claves. Al instalar openssh-server las claves públicas y privadas del servidor se generan automáticamente. Para el cliente, tendrá que hacerlo por su cuenta.

Cuando usted (cliente) se conecta con un servidor, se intercambian claves públicas. Recibirás los servidores uno y el servidor el tuyo. La primera vez que reciba la clave pública del servidor, se le pedirá que la acepte. Si esta clave pública cambia con el tiempo, se le advertirá porque se está produciendo un posible ataque MITM (Man in the middle), que intercepta el tráfico entre el cliente y el servidor.

El servidor verifica si tiene permiso para conectarse (definido en /etc/ssh/sshd_config ) y si su clave pública aparece en el archivo ~/.ssh/authorized_keys . Posibles razones por las que se deniega la clave pública:

  • /etc/ssh/sshd_config :
    • Se especifica AllowUsers o AllowGroups , pero el usuario de su servidor no aparece en la lista de grupos o usuarios (el valor predeterminado no está definido, lo que no restringe el inicio de sesión de los usuarios o grupos).
    • DenyUsers o DenyGroups se especifica y usted está en la lista de usuarios o grupos.
    • Está intentando iniciar sesión como root, pero PermitRootLogin está configurado en No (predeterminado yes ).
    • PubkeyAuthentication se establece en No (predeterminado yes ).
    • AuthorizedKeysFile está configurado en una ubicación diferente, y las claves públicas no se agregan a ese archivo ( .ssh/authorized_keys predeterminado, relativo al directorio de inicio)
  • ~/.ssh/authorized_keys : su clave pública no se agrega en este archivo (tenga en cuenta que este archivo se lee como usuario root)

Usando múltiples claves

No es raro utilizar varias claves. En lugar de ejecutar ssh user@host -i /path/to/identity_file , puede usar un archivo de configuración, ~/.ssh/config .

Las configuraciones comunes son IdentityFile (las claves) y el puerto. La siguiente configuración verificará "id_dsa" y "bender" solo cuando se conecte con ssh youruser@yourhost :

Host yourhost
   IdentityFile ~/.ssh/id_dsa
   IdentityFile ~/.ssh/bender

Si omite Host yourhost , la configuración se aplicará a todas las conexiones SSH. También se pueden especificar otras opciones para esta coincidencia de host, como User youruser , Port 2222 , etc. Esto le permitiría conectarse con la abreviatura ssh yourhost lugar de ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım