SSH (Secure Shell) es un protocolo de red seguro ampliamente utilizado para acceder a computadoras remotas en una red.
Vamos a instalarlo (Ubuntu, Debian y derivados): sudo apt install openssh-server.
Habilita SSH en tu Raspberry para que puedas acceder a la línea de comandos de una Raspberry Pi de forma remota desde cualquier otro ordenador o dispositivo en la misma red: sudo raspi-config, Interface Options, SSH.
raspi-config te ayuda a configurar tu Raspberry Pi. Te permite configurar sencillamente y personalizar a tus necesidades, por ejemplo, la distribución del teclado, la zona horaria, la contraseña para el usuario pi, el acceso SSH, etc.
Veamos las direcciones IP asignadas a todas las interfaces: ip address show. Si no conoces la dirección IP de tu Raspberry, teclea hostname -I
Si deseas conectarte a un servidor SSH, usa Putty (en Windows) o debes invocar el comando ssh seguido de tu nombre de usuario, el carácter arroba “@” y la dirección IP del servidor SSH, utilizando el siguiente formato: , simplemente, teclea en un terminal:
ssh miNombreUsuario@direcciónIPServidorSSH
Es posible que desees crear un alias en tu .bashrc:
alias sshpi = 'ssh pi@192.168.1.7'
Puedes cambiar el comportamiento predeterminado de OpenSSH editando el archivo de configuración sudo vi /etc/ssh/sshd_config. man sshd_config es la página del manual sobre el archivo de configuración de OpenSSH.
Port 2134 # De forma predeterminada, el demonio sshd escucha en el puerto 22. Podemos cambiar este puerto.
PermitRootLogin no # No permite que el usuario root inicie sesión directamente.
Banner /etc/issue.net # Muestra un banner o mensaje (especifica el archivo que contiene dicho mensaje) cuando un usuario intenta autenticarse en nuestro servidor
PasswordAuthentication no # Deshabilita la autenticación por contraseña. Solo permite iniciar sesión mediante claves públicas.
Luego, quizás sea útil asegurarte de la validez (o integridad) de tu archivo de configuración: sudo sshd -t -f /etc/ssh/sshd_config y reiniciar el demonio: sudo systemctl restart sshd.service
Solución de problemas: ¿Se está ejecutando ssh? sudo systemctl status ssh.
Si el firewall está habilitado en tu sistema, debes abrir el puerto SSH: sudo ufw allow ssh.
Habilitar el servicio sshd: sudo systemctl start ssh Habilita e inicia el servicio SSH: sudo stystemctl enable ssh
Genera un par de claves SSH en el cliente (tu ordenador local): ssh-keygen. Por defecto, las claves se almacenarán en el directorio ~/.ssh, la clave privada se llama id_rsa y la clave pública asociada se llamará id_rsa.pub.
A continuación, copia la clave pública en el servidor SSH:
ssh-copy-id -i ~/.ssh/id_rsa.pub nombreUsuario@dirIPServidorSSH
Utiliza una clave pública disponible localmente para autorizar inicios de sesión en una máquina remota. ssh_copy usa ssh para iniciar sesión en una máquina remota y añade la clave pública de la computadora local al archivo ~/.ssh/authorized_keys del servidor remoto, así típicamente cuando hacemos cat .ssh/authorized_keys: ssh-rsa CSDAAAB3NzaC1yc……asdSRTXmRQ.== myName@gmail.com
Importar las claves SSH a una nueva máquina
mkdir -p ~/.ssh/ # Primero, necesitamos crear el directorio .ssh, copiar las claves pública y privada a este directorio.
# Establecer los permisos correctos
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa.pub
# Credits: Putorius.net. Create a Custom MOTD or login banner in Linux
sudo bash -c $'echo "neofetch" >> /etc/profile.d/mymotd.sh && chmod +x /etc/profile.d/mymotd.sh'
Considera que cualquier script en la carpeta /etc/profile.d se ejecutará cuando un usuario inicie sesión.
ssh -Y nombreUsuario@dirIpServidorSSH
Para mantener las sesiones SSH vivas para todas las conexiones remotas, edita el archivo /etc/ssh/ssh_config:
TCPKeepAlive yes
ClientAliveInterval 600 # Envía un paquete nulo al cliente cada 600 segundos (10 minutos)
ClientAliveCountMax 3 # Aborta la sesión si no recibe ninguna respuesta después de 3 intentos.
ChallengeResponseAuthentication yes
PasswordAuthentication no (Desactiva la autenticación de contraseña porque muchas personas con servidores SSH usan contraseñas muy débiles)
Banner /etc/issue.net (Mostrar mensaje de advertencia)
PermitRootLogin no (deshabilitar el inicio de sesión SSH del usuario root o administrador)
ADVERTENCIA: El acceso no autorizado a este sistema está prohibido y será susceptible de sanción y persecución legal. Al acceder a este sistema, acepta que sus acciones pueden ser monitorizadas si se sospecha de un uso no autorizado.