Acceso remoto a un Raspberry Pi con SSH: cómo habilitarlo
El Raspberry Pi no solo permite crear, a partir de componentes elementales de hardware, interesantes proyectos creativos. El miniordenador británico es objeto de una gran demanda como base para operar todo tipo de servidores (en la nube, DNS o Minecraft) gracias a su buena potencia de cálculo y a su escaso consumo de energía. Muchos usuarios confían en el acceso remoto con SSH (Secure Shell) para evitar tener que conectar un teclado y un monitor cada vez que se tienen que realizar cambios en las configuraciones del servidor.
Configuración de SSH en un Raspberry Pi: punto de partida
En la mayoría de los casos, quienes operan un servidor en un Raspberry Pi se apoyan en el estandarizado Raspbian como base de software. Las versiones más nuevas de la distribución de Linux para Pi llevan instalado por defecto un servicio SSH, necesario para establecer las conexiones remotas encriptadas. Sin embargo, por razones de seguridad el servicio no está activado por defecto, sino que para aprovechar todas las posibilidades del acceso remoto tiene que habilitarse primero. Los usuarios de Linux y macOS pueden conectarse fácilmente ya que la terminal incluye soporte nativo para conexiones SSH, pero los usuarios de Windows necesitan descargar un software adicional como PuTTY o WinSCP.
“pi” es el perfil estándar de Raspbian y siempre tiene la misma contraseña (“raspberry”). Cuando el servicio SSH todavía estaba habilitado por defecto, cualquier usuario que pudiera conectarse a la red de Raspberry podía conectarse al servicio sin ningún problema, si las credenciales no se cambiaban. Esta fue la razón por la que SSH se desactivó en la configuración básica.
Tutorial: activar SSH en Raspberry Pi
SSH se desactivó por defecto en los Raspberry para evitar que el acceso externo fuera demasiado fácil. Así, con el objetivo de minimizar este riesgo de suplantación involuntaria, al activar SSH manualmente deberás cambiar la contraseña del usuario “pi” tan pronto como te sea posible y, en cualquier caso, antes de conectarte a Internet.
Mientras tanto, hay cuatro maneras de activar SSH en Raspberry Pi:
Solución 1: crear un archivo ssh en el directorio de arranque de la tarjeta SD
Si no tienes la posibilidad de operar el Raspberry directamente desde un teclado y una pantalla, puedes poner en práctica este simple truco: puedes acceder a la tarjeta microSD en la que se instaló Raspbian desde un ordenador externo y crear un archivo llamado ssh en el directorio de arranque. En este caso, es importante que no utilices una extensión de archivo y que te asegures de que esta no se ha añadido automáticamente como sucede a menudo en Windows. Si reinicias el minicomputador, el acceso SSH estará habilitado.
Solución 2: activar el servidor SSH en el escritorio
Si conectas el miniordenador a un teclado, un ratón y un monitor, también puedes activar SSH en tu Raspberry Pi fácilmente utilizando la interfaz de escritorio. Para ello, abre el Menú de inicio y desde las “Preferencias” selecciona la “Configuración de Raspberry Pi”. En la pestaña “Interfaces” encontrarás la entrada correspondiente para SSH y el ajuste predeterminado (“desactivado”), que podrás invertir aquí. A continuación, confirma el cambio haciendo clic en “Aceptar”.
Solución 3: habilitar SSH con la terminal en raspi-config
Si has conectado el teclado y la pantalla a tu Raspberry, también puedes habilitar el acceso SSH desde la terminal. Para ello, inicia la línea de comandos y escribe el siguiente comando:
sudo raspi-config
En el menú de la herramienta de configuración que se abrirá a continuación, selecciona primero el punto 7 (“Opciones avanzadas”) y después A4 (“SSH”). La herramienta te preguntará si deseas activar el servidor SSH, lo que deberás confirmar antes de cerrar los ajustes con “Finalizar”.
Solución 4: inciar el servicio SSH con systemctl
Como alternativa a raspi-config, puedes utilizar la herramienta de línea de comandos systemctl para configurar en tu Raspberry Pi el SSH. Simplemente introduce los dos comandos siguientes en la terminal:
sudo systemctl enable ssh
sudo systemctl start ssh
Mientras que el primer comando iniciará automáticamente el servidor SSH cuando se inicie el minicomputador, el segundo comando iniciará el servidor en la sesión actual.
Cómo acceder al servidor SSH de tu Raspberry Pi una vez activado
Después de iniciar el servicio SSH en tu Raspeberry Pi, el miniordenador está listo para el acceso remoto a través del protocolo de red. El procedimiento a seguir dependerá del tipo de sistema operativo instalado en el ordenador externo. Las siguientes instrucciones muestran cómo pueden los usuarios de Windows, Linux y macOS establecer una conexión segura y qué complicaciones pueden plantearse.
Cómo establecer una conexión SSH al Raspberry Pi en Linux y macOS
Las distribuciones de macOS y Linux como Ubuntu o Debian soportan automáticamente la conexión con el protocolo SSH gracias a la implementación estándar del software libre OpenSSH. Todo lo que tienes que hacer es asegurarte de que el ordenador está en la misma red que el Raspberry Pi. Si este es el caso, solo necesitas la dirección IP para iniciar la conexión. Hay dos maneras de averiguarlo:
1. Si operas el Raspberry directamente desde el teclado y el monitor, utiliza la terminal del minicomputador y escribe el comando:
hostname –I
2. Si ejecutas el Raspberry en modo headless, busca la dirección en la lista de dispositivos de tu router o utiliza una herramienta como Nmap en el ordenador externo.
A continuación, intenta establecer la conexión SSH en la terminal del dispositivo Unix, donde el comando correspondiente se estructura de la siguiente manera:
ssh Nombredeusuario@direccion-IP
En el parámetro “Nombre de usuario”, introduce el perfil por defecto “pi” o el nombre de tu propio perfil (en caso de que hayas creado uno). La primera vez que estableces la conexión SSH entre el Raspberry Pi y el dispositivo externo recibirás una sugerencia de seguridad/autenticación. Una vez que hayas tomado nota de ello, introduce “sí” en la terminal para continuar. Por último, introduce la contraseña para que el usuario seleccionado se conecte a la línea de comandos del Raspberry.
Es posible que al Raspberry Pi se le haya asignado una dirección IP a la que el ordenador externo ya se hubiera conectado previamente (incluso si se ha conectado en otra red). En este caso, recibirás una advertencia al establecer la conexión, incluyendo una solicitud para eliminar la entrada IP correspondiente de la lista de dispositivos conocidos. Sigue las instrucciones dadas antes de volver a ejecutar el comando SSH.
Configurar el acceso SSH en Windows con Putty
A diferencia de la mayoría de los sistemas de tipo Unix, Windows no tiene un cliente SSH por defecto. El primer paso, por lo tanto, consistirá en descargar la aplicación correspondiente. Nos hemos decidido por PuTTY pero, como los programas de cliente de este tipo son muy similares en su manejo y funcionalidad, puedes utilizar un software diferente si así lo prefieres.
En la página principal del proyecto PuTTY puedes descargar el paquete de instalación o el archivo exe del programa (putty.exe). Esto último hace que el proceso de instalación sea innecesario, por lo que PuTTY puede iniciarse inmediatamente. Si has iniciado el cliente haciendo doble clic, solo tienes que introducir el nombre del host en el campo correspondiente y pulsar el botón "Abrir".
En algunos casos es necesario especificar la dirección IP en lugar del nombre de host. Si no los conoces, puedes utilizar los métodos listados anteriormente (Nmap, lista de dispositivos del router, comprobación de terminales).
PuTTTY te mostrará entonces un mensaje pidiéndote que confirmes la fiabilidad del servidor SSH del Raspberry Pi y la clave SSH, y lo haces seleccionando “Yes”. Como en sistemas Unix, este aviso de seguridad solo aparece cuando te conectas por primera vez. Se abrirá una nueva ventana con un mensaje que te permitirá iniciar sesión de forma remota en el terminal de Raspberry introduciendo tus credenciales.
Si al tratar de iniciar sesión se produce un Time-out (se agota el tiempo de espera por inactividad) es muy probable que la dirección IP introducida no coincida con la dirección real de Raspberry Pi.