Administración remota. Open SSH

OpenSSH es una versión libre de SSH, familia de herramientas para controlar remotamente una red o transferir archivos.

El demonio servidor sshd escucha continuamente peticiones de cliente. Cuando ocurre una petición de conexión, sshd hace los ajustes necesarios dependiendo del tipo de herramienta cliente.

Por ejemplo, si un ordenador remoto pide una conexión ssh entonces OpenSSH prepara la conexión después de la autenticación. O por ejemplo, si un cliente pide transferencia de archivos con scp, OpenSSH inicia la transferencia segura de archivos después de la autenticación.

OpenSSH puede usar cualquier método de autenticación, password, clave pública o ticket Kerberos.

Instalación del cliente:

sudo apt-get install openssh-client

Instalación del servidor:

sudo apt-get install openssh-server

El archivo de configuración es /etc/ssh/sshd_config

Para más información man sshd_config

Antes de manipular el archivo de configuración conviene hacer una copia para tenerla de referencia y protegerla de escritura, con:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

sudo chmod a-w /etc/ssh/sshd_config.original

Ejemplos de configuración:

Cambiar el puerto de escucha 22 al 2222: Port 2222

Permitir clave pública: PubkeyAuthentication yes

Para mostrar display: Banner /etc/issue.net

Una vez hechos los cambios hay que guardar y reiniciar el sshd server:

sudo /etc/init.d/ssh restart

SSH keys permite autenticación sin password. Usa clave pública y privada.

Para generar las claves:

ssh-keygen -t dsa

Esto genera una clave para identificar al usuario.

La clave pública se guarda en ~/.ssh/id_dsa.pub, y la privada en ~/.ssh/id_dsa. Ahora copia el id_dsa.pub al host remoto y añadelo a ~/.ssh/authorized_keys entrando:

ssh-copy-id username@remotehost

Finalmente, comprueba los permisos de authorized_keys, para cambiarlos:

chmod 644 .ssh/authorized_keys