SSH se ha convertido en el método predeterminado para acceder a un servidor Linux remoto en estos días.
SSH significa Secure Shell y es un protocolo de red poderoso, eficiente y popular que se usa para establecer comunicación entre dos computadoras de manera remota. Y no olvidemos la parte segura de su nombre; SSH encripta todo el tráfico para evitar ataques como el secuestro y la escucha mientras ofrece diferentes métodos de autenticación y una gran cantidad de opciones de configuración.
En esta guía para principiantes, aprenderá:
- El concepto básico de SSH
- Configuración del servidor SSH (en el sistema al que desea acceder de forma remota)
- Conectarse al servidor remoto a través de SSH desde la máquina cliente (su computadora personal)
Los fundamentos absolutos de SSH
Antes de ver cualquier proceso de configuración, será mejor pasar por el concepto básico absoluto de SSH.
El protocolo SSH se basa en la arquitectura servidor-cliente. El “servidor” permite que el “cliente” se conecte a través de un canal de comunicación. Este canal está encriptado y el intercambio se rige por el uso de claves SSH públicas y privadas.
OpenSSH es una de las herramientas de código abierto más populares que proporciona la funcionalidad SSH en Linux, BSD y Windows.
Para una configuración de SSH exitosa, debe:
- Tener componentes de servidor SSH en la máquina que actúa como servidor. Esto es proporcionado por openssh-server paquete.
- Tenga un componente de cliente SSH en la máquina desde donde desea conectarse a la máquina del servidor remoto. Esto es proporcionado por openssh-client y la mayoría de las distribuciones de Linux y BSD vienen preinstaladas.
Es importante mantener una distinción entre el servidor y el cliente. Es posible que no desee que su computadora personal actúe como servidor SSH a menos que tenga buenas razones para que otros se conecten a su sistema a través de SSH.
Generalmente, tiene un sistema dedicado que funciona como servidor. Por ejemplo, una Raspberry Pi con un servidor Ubuntu. Habilita SSH en Raspberry Pi para poder controlar y administrar el dispositivo desde su computadora personal principal usando SSH en una terminal.
Con esa información, veamos cómo puede configurar un servidor SSH en Ubuntu.
Configuración del servidor SSH en Ubuntu
Configurar SSH no es complicado y solo necesita unos pocos pasos para hacerlo.
Requisitos
- Un usuario con sudo privilegios en la máquina del servidor
- Conexión a Internet para descargar los paquetes requeridos
- Al menos otro sistema en su red. Puede ser otra computadora en su LAN, un servidor remoto a través de Internet o una máquina virtual alojada en su computadora.
Nuevamente, la instalación del servidor SSH debe realizarse en el sistema que desea que actúe como servidor y al que desea conectarse de forma remota a través de SSH.
Paso 1:Instale los paquetes necesarios
Comencemos abriendo una ventana de terminal para ingresar los comandos necesarios.
Recuerde actualizar su sistema Ubuntu antes de instalar nuevos paquetes o software para asegurarse de que está ejecutando las últimas versiones.
sudo apt update && sudo apt upgrade
El paquete que necesita para ejecutar SSH Server lo proporciona el componente openssh-server de OpenSSH:
sudo apt install openssh-server
Paso 2:Comprobación del estado del servidor
Una vez finalizada la descarga e instalación del paquete, el servicio SSH ya debería estar ejecutándose, pero para asegurarnos lo comprobaremos con:
service ssh status
También puede usar los comandos systemd:
sudo systemctl status ssh
Debería ver algo como esto, con la palabra Activo resaltada. Presiona q
para volver a la línea de comandos.
Si en tu caso el servicio no está funcionando tendrás que activarlo así:
sudo systemctl enable --now ssh
Paso 3:Permitir SSH a través del cortafuegos
Ubuntu viene con una utilidad de cortafuegos llamada UFW (UncomplicatedFirewall) que es una interfaz para iptables que a su vez gestiona las reglas de la red. Si el firewall está activo, puede impedir la conexión a su servidor SSH.
Para configurar UFW para que permita el acceso deseado, debe ejecutar el siguiente comando:
sudo ufw allow ssh
El estado de UFW se puede verificar ejecutando sudo ufw status
.
En este momento, nuestro servidor SSH está funcionando, solo esperando una conexión de un cliente.
Conectarse al sistema remoto desde su máquina local
Su sistema Linux local ya debería tener instalado el cliente SSH. De lo contrario, siempre puede instalarlo usando el siguiente comando en Ubuntu:
sudo apt install openssh-client
Para conectarse a su sistema Ubuntu, necesita conocer la dirección IP de la computadora y usar el ssh
comando, así:
ssh [email protected]
Cambiar nombre de usuario a su usuario actual en el sistema y dirección a la dirección IP de su máquina Ubuntu.
Si no conoce la dirección IP de su computadora, puede escribir ip a
en la terminal del servidor y verifique la salida. Deberías tener algo como esto:
Como se puede ver aquí, mi dirección IP es 192.168.1.111 . Intentemos conectarnos usando el [email protected] formato.
ssh [email protected]
La primera vez que se conecte a un servidor SSH, le pedirá permiso para agregar el host. Escribe yes
y pulsa Intro para continuar.
Inmediatamente, SSH le informa que el host se agregó de forma permanente y luego solicita la contraseña asignada al nombre de usuario. Escriba la contraseña y presione Enter una vez más.
¡Y voilá! ¡Se iniciará sesión en su sistema Ubuntu de forma remota!
Ahora puede trabajar en la terminal de su sistema remoto con normalidad.
Cerrar la conexión SSH
Para cerrar la conexión solo necesitas escribir exit
y lo cerrará de una vez, sin pedir confirmación.
Detener y deshabilitar SSH en Ubuntu
Si desea detener el servicio SSH, necesitará este comando:
sudo systemctl stop ssh
Esto detendrá el servicio hasta que lo reinicie o hasta que se reinicie el sistema. Para reiniciarlo, escriba:
sudo systemctl start ssh
Ahora, si desea desactivarlo para que no se inicie durante el arranque del sistema, use esto:
sudo systemctl disable ssh
Esto no impedirá que el servicio se ejecute durante la sesión actual, solo que se cargue durante el inicio. Si desea permitir que se inicie de nuevo durante el arranque del sistema, escriba:
sudo systemctl enable ssh
Otros clientes SSH
La herramienta ssh está incluida en la mayoría de los sistemas *nix, desde Linux hasta macOS, pero esas no son las únicas opciones que existen, aquí hay un par de clientes que se pueden usar desde otros sistemas operativos:
- PuTTY es un cliente SSH gratuito y de código abierto muy popular entre los usuarios de Windows. También puede instalar PuTTY en Ubuntu. Está lleno de funciones y es muy fácil de usar. Si se está conectando a su máquina Ubuntu desde una estación de Windows, PuTTY es una gran opción.
- JuiceSSH es una herramienta increíble para los usuarios de Android. Si está en movimiento y necesita un cliente móvil para conectarse a su sistema Ubuntu, le recomiendo probar JuiceSSH. Ha existido durante casi 10 años y es de uso gratuito.
- Y finalmente, Termius está disponible para Linux, Windows, macOS, iOS y Android. Tiene una versión de nivel gratuito y también varias opciones premium. Si ejecuta muchos servidores y trabaja con equipos que comparten conexiones, Termius es una buena opción para usted.
Conclusión
Con estas instrucciones, puede configurar SSH como un servicio de servidor en nuestros sistemas Ubuntu para poder conectarse de forma remota y segura a su computadora para trabajar con la línea de comandos y realizar cualquier tarea requerida.
Nuestro otro sitio web, Linux Handbook, tiene varios artículos informativos sobre SSH. Desde aquí, recomiendo leer lo siguiente:
- Primeros pasos con SSH en Linux
- Uso del archivo de configuración SSH para administrar varias conexiones SSH
- Agregar clave pública al servidor SSH para autenticación sin contraseña
- Consejos de fortalecimiento de SSH para proteger su servidor SSH
Si lo encuentra abrumador, el Manual de Linux tiene un curso de video premium que explica SSH para principiantes junto con laboratorios prácticos a seguir. Esto le dará un conocimiento más ágil del tema.
¡Feliz trabajo remoto!