Configuración SSH

De Master Solutions Wiki
Saltar a: navegación, buscar

Contenido

Introducción

Uso de ssh y scp para acceder a otras máquinas autorizadas sin necesidad de indicar la clave de usuario cada vez que se conecta.

Configuración

Crear las claves

Desde del directorio $HOME del usuario:

 pepe@cliente:~$ssh-keygen -b 4096 -t rsa
 pepe@cliente:~$

Eso genera:

 $HOME/.ssh/id_rsa 
 $HOME/.ssh/id_rsa.pub 

que son las claves privada y publica para el sistema RSA.

Copiar la clave pública a otros hosts

Tienes que añadir la clave pública de tu usuario@host en el fichero authorized_keys de la máquina que quieres que te deje entrar sin clave.

 pepe@cliente:~$ scp .ssh/id_rsa.pub pepe@servidor;:.ssh/nueva_clave
 pepe@cliente:~$ ssh pepe@servidor
 pepe@servidor:~$ cd .ssh/
 pepe@servidor:~$ cat nueva_clave >> authorized_keys
 pepe@servidor:~$ rm nueva_clave

Y lo mismo pero en un sólo comando:

 pepe@cliente$ cat ~/.ssh/id_rsa.pub | ssh pepe@servidor 'cat - >> ~/.ssh/authorized_keys' 

O con el programa específico que viene con SSH:

 pepe@cliente$ ssh-copy-id pepe@servidor

En todos los casos, el directorio .ssh en el servidor debe existir y el fichero authorized_keys debe tener los permisos correctos (0600).

La primera vez que se accede a una máquina se almacena su host_key en el fichero $HOME/.ssh/know_hosts.

A partir se ese momento puedes utilizar ssh y scp con esa máquina sin necesidad de escribir la clave.

Evidentemente, esto se puede repetir para cualquier pareja de máquinas y en ambos sentidos si se desea. Permisos

El servidor de SSH suele asegurarse de que las claves públicas no están comprometidas. Para ello comprueba los permisos de la ruta $HOME/.ssh/authorized_keys. Este fichero debe tener permisos 600 y el directorio .ssh debe tener permisos 755 o más restrictivos.

Cambio de identidad de un host

A veces, es posible que al conectar a otra máquina aparezca un mensaje de advertencia como el siguiente y no es posible realizar la conexión.

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    
 @  WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!
 It is also possible that the RSA host key has just been changed.
 The fingerprint for the RSA key sent by the remote host is
 c6:70:0f:ff:2d:a7:40:b8:82:e5:ed:35:b4:d6:77:ca.
 
 Please contact your system administrator.
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
 Offending key in /home/user/.ssh/known_hosts:8
 RSA host key for server has changed and you have requested strict checking.
 Host key verification failed.

Esto se debe a que la clave pública del host al que intentas conectar es diferente que la tú tienes registrada. Éste puede ser un signo de que algo va mal, alguien está suplantado esa maquina. Pero la mayoría de las veces se debe a que se ha regenerado la clave pública del host o se ha instalado otra versión, etc, etc. En ese caso, lo que debes hacer el borrar la clave pública que tienes almacenada para esa máquina. El mensaje de advertencia indica que debes borrar una línea concreta de tu fichero ~/.ssh/known_hosts, que es la que contiene la famosa clave. Eso puedes hacerlo con cualquier editor de texto o puedes ejecutar simplemente esto:

 $ ex -c "8d|x" ~/.ssh/known_hosts

o también:

 $ sed -ie 8d ~/.ssh/known_hosts

en el caso de que sea la línea 8, que es el que aparece en el ejemplo anterior.

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas
Procedimientos
Procesos
Indicadores
Items de Configuración
Imprimir/exportar