Mostrando entradas con la etiqueta ssh. Mostrar todas las entradas
Mostrando entradas con la etiqueta ssh. Mostrar todas las entradas

Conectar a servidor SSH sin contraseña

0 comentarios

Para los que trabajamos continuamente con varios servidores SSH, puede llegar a ser algo extresante tener que escribir siempre la contraseña. Y si además tienes que memorizar varias contraseñas de diferentes servicios, servidores, etc, como es mi caso, puede darse el caso de que cueste recordarlas.

En cualquier caso, por un motivo u otro, puede que cualquier programador o administrador de sistemas prefiera poder conectarse a su servidor SSH sin necesidad de escribir continuamente la contraseña, pero, ¿como hacer esto sin vulnerar la seguridad del servidor?.

La respuesta está en las claves RSA y el fichero authorized_keys de SSH. La cuestión es crear una clave rsa, que almacenaremos en el servidor al que deseamos conectar. A continuación explico los pasos para realizar el procedimiento.

1. Creamos la clave RSA
Para empezar, debemos crear en nuestro cliente la una clave rsa para identificar la máquina. Abriremos una ventana de terminal y ejecutaremos la siguiente sentencia:

ssh-keygen -t rsa
Nos pedirá una contraseña común, que podremos utilizar en caso de querer utilizar esta misma para conectar a diferentes servidores (en caso de que lo subamos a varias máquinas). Es una medida de seguridad más, aunque yo siempre dejo este campo vacío.

Una vez ejecutada la esta sentencia, se creará automáticamente en la carpeta .ssh de nuestro usuario ($HOME/.ssh) un fichero id_rsa.pub que utilizaremos para conectar a nuestros servidores.

2. Enviar la clave al servidor/es
El siguiente paso es enviar la clave al servidor. Con un sencillo comando que nos pedirá la contraseña, ya conseguiremos hacerlo:
ssh-copy-id -i ~/.ssh/id_rsa.pub $USER@$HOST
Donde $USER es el usuario con el que conectamos al servidor y $HOST la dirección. Con esto ya estaremos listos para conectar al servidor sin necesidad de introducir la contraseña.


CONFIGURACIÓN ADICIONAL
Para los más maniáticos, o aquellos que quieran añadir un nivel más de seguridad al servidor, se puede añadir la opción de que no se pueda conectar al servidor SSH si el equipo no está en el archivo authorized_keys del servidor. Es decir, que solo aquellos que han realizado el paso anterior puedan conectarse.

Para ello se debe editar el fichero /etc/ssh/ssh_config del servidor y añadir las siguientes lineas de configuración:
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
Reiniciamos el servidor:
sudo /etc/init.d/ssh restart
Y probamos de conectaros mirando los mensajes de conexión (para comprobar que funciona correctamente):
ssh -v $USER@$HOST
Para realizar esta configuración en varios servidores, basta repetir solo el paso 2 en cada uno de los servidores, ya que la clave RSA será única para el cliente.

Evitar desconexión SSH

4 comentarios

A muchos de vosotros os pasará que debeis conectar a un servidor mediante SSH y realizar varias tareas, pero entre estas puede pasar un cierto tiempo. Por defecto, la conexión SSH se desconecta automáticamente cuando el servidor lleva un rato sin recibir ninguna orden, por lo que se debe volver a reconectar al servidor (e incluso en algunos casos, bloquea la terminal y hay que cerrarla y volver a abrirla).

Esta mañana he encontrado la solución en un blog venezonalo de Fedora.

La mejor manera de mantener la sesión abierta, es hacer que el servidor SSH envíe peticiones cada cierto tiempo para comprobar el estado de la conexión. Esto hace que al haber actividad, la conexión no se cierre. Para hacerlo deberemos aplicar la siguiente configuración:

Cliente
Abriremos el fichero /etc/ssh/ssh_config con nuestro editor favorito y añadiremos las siguientes 2 líneas:

ServerAliveInterval 30
AliveCountMax 4
Servidor
En nuestro servidor SSH abriremos el mismo fichero /etc/ssh/ssh_config para añadir estas otras 2 líneas:
ClientAliveInterval 30
ClientAliveCountMax 4

Esta configuración hace que cada una de las máquinas haga consultas a la otra cada 30 segundos y en caso de recibir 4 errores NOK (errores de respuesta), la conexión se cerrará. De lo contrario se mantendrá abierta.

Disfrutad de una conexión SSH sin cortes.