Guía completa para configurar SSH en Ubuntu

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 potente, eficiente y popular que se utiliza para establecer la comunicación entre dos computadoras de forma remota. Y no olvidemos la parte segura de su nombre; SSH cifra todo el tráfico para evitar ataques como secuestro y escuchas mientras ofrece diferentes métodos de autenticación y una gran variedad 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)
  • Conexión a un 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.

Credito de imagen: SSH

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 SSH exitosa, necesita:

  • Tener componentes de servidor SSH en la máquina que actúa como servidor. Esto es proporcionado por servidor openssh paquete.
  • Tenga el componente de cliente SSH en la máquina desde donde desea conectarse a la máquina del servidor remoto. Esto es proporcionado por openssh-cliente y la mayoría de las distribuciones de Linux y BSD vienen preinstaladas con él.

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 por las que desee que otros se conecten a su sistema a través de SSH.

Generalmente, tiene un sistema dedicado que funciona como servidor. Para example, una Raspberry Pi que ejecuta un servidor Ubuntu. Habilita SSH en la 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.

Prerrequisitos

  • 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: verificar el estado del servidor

Una vez que se realiza la descarga e instalación del paquete, el servicio SSH ya debería estar ejecutándose, pero para estar seguros 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. Pegar q para volver al símbolo del sistema.

Si en su caso el servicio no se está ejecutando, deberá activarlo así:

sudo systemctl enable --now ssh

Paso 3: Permitir SSH a través del firewall

Ubuntu viene con una utilidad de firewall 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 en ejecución sudo ufw status.

En este momento, nuestro servidor SSH está en funcionamiento, esperando una conexión de un cliente.

Conexión 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]

Cambio nombre de usuario a su usuario real en el sistema y habla a 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:

Usando “ip a” para encontrar la dirección IP

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 golpea Enter continuar.

Primera vez que se conecta al servidor

Inmediatamente SSH le dice que el host se agregó permanentemente y luego le solicita la contraseña asignada al nombre de usuario. Escriba la contraseña y presione Enter una vez más.

Host agregado, ahora ingrese la contraseña

¡Y voilá! ¡Se iniciará sesión en su sistema Ubuntu de forma remota!

¡Conectado!

Ahora puede trabajar en la terminal de su sistema remoto como de costumbre.

Cerrar la conexión SSH

A close la conexión que solo necesita escribir exit y lo hará close inmediatamente, sin pedir confirmación.

Cerrar la conexión con “salir”

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 deshabilitarlo para que no se inicie durante el inicio del sistema, use esto:

sudo systemctl disable ssh

Esto no evitará que el servicio se ejecute durante la sesión actual, solo que se cargue durante el inicio. Si desea que se inicie de nuevo durante el inicio del sistema, escriba:

sudo systemctl enable ssh

Otros clientes SSH

La herramienta ssh está incluido 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:

  • Masilla es un cliente SSH gratuito para Windows y es de código abierto. 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.
  • JugoSSH 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 ampliamente que pruebe 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 está ejecutando muchos servidores y trabajando con equipos que comparten conexiones, Termius es una buena opción para usted.

Terminando

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 comando y realizar cualquier tarea requerida.

Nuestro otro sitio web, el Manual de Linux, tiene varios artículos informativos sobre SSH. Desde aquí, recomiendo leer lo siguiente:

Si lo encuentras abrumador, El manual de Linux tiene un curso de video premium que explica SSH para principiantes junto con los laboratorios prácticos a seguir. Esto le dará un conocimiento más ágil del tema.

¡Feliz trabajo remoto!