SSH es un protocolo seguro para acceder a una consola de comandos remota en otro equipo.
En muchas ocasiones no vamos a tener nuestra Raspberry Pi conectada a un monitor y un teclado, sino que la tendremos dedicada a otras funciones como un servidor web, un broker para IoT o un pequeño servicio doméstico. Incluso teniendo monitor y ratón, muchas veces querremos controlarla desde otro ordenador.
Las formas habituales de conectarnos de forma remota son SSH, VNC/RDP o Raspberry Pi Connect. SSH es la más empleada para administración, porque es rápida, ligera y segura. Familiarizarnos con su uso es casi imprescindible si queremos trabajar cómodamente con Linux.
SSH son la siglas de Secure Shell (antes conocido como Secure Socket Shell) y, básicamente, nos permite iniciar una consola de comandos en un ordenador remoto de forma sencilla y segura.
Funciona de forma similar a Telnet pero añade el cifrado de la comunicación, de forma que los paquetes enviados por el cliente o el servidor no pueden ser descifrados en caso de ser interceptados.
SSH sigue un modelo cliente-servidor. El cliente inicia una petición al servidor, que autentifica la comunicación e inicia el entorno Shell. Múltiples clientes pueden conectarse a un mismo servidor.
Por defecto SSH emplea el puerto TCP 22, aunque puede cambiarse fácilmente. El protocolo usa criptografía moderna para autenticar el servidor, proteger la sesión y cifrar la comunicación entre cliente y servidor.
SSH dispone de más usos muy interesantes. Por ejemplo, podemos copiar archivos de forma segura entre dos dispositivos, autenticarnos con claves o tunelizar conexiones de otras aplicaciones a través de un canal seguro.
Configurar SSH en Raspberry Pi
Para podernos conectar a nuestra Raspberry Pi, esta va a funcionar como servidor. Antes de poder conectarnos tenemos que activar SSH en la configuración ya que, por seguridad, el servidor SSH viene desactivado si no lo hemos habilitado durante la instalación.
Podemos activar SSH desde Raspberry Pi Imager, desde la configuración gráfica, con raspi-config o creando el fichero ssh en la partición de arranque en instalaciones antiguas.
Por otro lado, debemos saber la ‘dirección’ de la Raspberry Pi a la que queremos conectarnos. Aunque, en teoría, podemos resolver la dirección con el nombre del equipo, la resolución de nombres es un proceso… algo inestable.
Por tanto, si queremos una conexión fiable resulta muy conveniente que la Raspberry Pi tenga asignada una IP estática, como vimos en esta entrada.
Esta conexión, en principio, sólo funcionará en vuestra red local. Para poder acceder desde fuera, a través de Internet, deberéis configurar un mapeo de puertos en el router. El proceso completo depende de vuestro router, así que tendréis que consultar la documentación de vuestro modelo.
Conectarse por SSH a Raspberry Pi
Si estáis usando Linux o macOS, usar SSH es muy simple porque el terminal incluye soporte nativo. En Windows moderno también tenemos cliente OpenSSH integrado en la Terminal o PowerShell, aunque Putty sigue siendo una alternativa muy conocida.
Conexión SSH desde Linux
Para conectarnos como cliente a una Raspberry Pi simplemente abrimos la consola de terminal y ejecutamos el siguiente comando:
ssh user@host
Donde ‘user’ es el nombre del usuario en el Raspberry Pi servidor y ‘host’ es la dirección IP o el nombre del equipo al que nos queremos conectar.
Por ejemplo, si nuestro usuario se llama luis y la Raspberry Pi tiene configurada la IP 192.168.1.10:

La primera vez que nos conectemos aparecerá un mensaje de advertencia sobre la huella del servidor. Si estamos seguros de que es nuestra Raspberry Pi, aceptamos y se guardará la huella para futuras conexiones.
Es un grave riesgo exponer una Raspberry Pi en Internet con SSH activado, contraseña débil o un usuario conocido. Mejor usar un usuario propio, contraseña robusta y, si vais a abrir SSH al exterior, autenticación por clave pública.
Conexión SSH desde Windows
Si utilizamos Windows podemos usar el cliente SSH integrado en Windows Terminal o PowerShell. Putty sigue siendo una alternativa muy utilizada, Open Source y disponible en https://www.putty.org/.
Putty es un programa muy útil y sencillo de usar, y es una herramienta que tiene más usos que realizar conexiones SSH. Por ejemplo, también puede realizar conexiones Serial.
Descargamos y ejecutamos Putty y nos aparece una ventana donde podemos introducir la dirección IP (o el nombre) de la Raspberry Pi. Al conectarnos se nos preguntará el nombre del usuario y la contraseña.

Tras el login, tenemos una ventana de comandos similar a la que obtenemos en Linux o Mac. Opcionalmente podemos guardar la conexión poniéndole un nombre. Así podemos tener almacenadas las conexiones a varios servidores, y acceder cómodamente.
Así de fácil es realizar una conexión SSH, una herramienta casi imprescindible para trabajar con Raspberry Pi (en realidad, con cualquier servidor con Linux).

