Linux PC

Cómo usar SSH para conectarse a un servidor remoto en Linux

Cómo usar SSH para conectarse a un servidor remoto en Linux

Si es nuevo en el mundo de la administración de sistemas y necesita mantener y monitorear servidores remotos, es importante que domine Secure Shell (SSH) para el acceso remoto. Con SSH, puede conectarse de manera segura y administrar sus servidores desde cualquier lugar, lo que garantiza una administración eficiente y una seguridad mejorada. Entonces, en esta guía, explicaremos cómo usar ssh para conectarse a un servidor remoto en Linux.

¿Qué significa SSH?

SSH significa “Cubierta segura”, un protocolo de red criptográfico que puede usar para conectarse a un servidor remoto en Windows, Linux y macOS. Proporciona un canal seguro y autenticado mediante el cual puede transferir datos entre el cliente y el servidor. Con SSH, también puede iniciar sesión de forma segura en un sistema remoto. Algunas de las características clave de SSH son:

  • Cifrado: Todos los datos intercambiados mediante SSH se cifran completamente mediante cifrado simétrico, cifrado asimétrico o hash de algoritmos de cifrado muy fuertes, protegiendo así los datos del usuario. Dicho cifrado garantiza que los piratas informáticos o los actores de amenazas no puedan interceptar ni manipular los datos confidenciales, incluidas las credenciales de inicio de sesión, los comandos y los archivos.
  • Autenticación: SSH utiliza la autenticación para verificar cualquier solicitud de inicio de sesión que se aproxima. Admite dos tipos de protocolos de autenticación:
    • Autenticación basada en contraseña: en este modo de autenticación, el usuario proporciona un nombre de usuario y una contraseña registrados para autenticarse. Este es el método más común para conectarse a un servidor Linux remoto con SSH.
    • Autenticación basada en pares de claves SSH: en este modo de autenticación, se generan un par de claves criptográficas: una clave pública almacenada en el servidor remoto y una clave privada almacenada en el sistema del usuario. Cuando el usuario intenta iniciar sesión, las claves se utilizan para confirmar la identidad del usuario. Este método es un método altamente seguro y evita que el usuario inicie sesión con una contraseña.
  • Independencia de la plataforma: con SSH, puede conectarse a cualquier servidor remoto, independientemente del sistema operativo host. Está disponible para Linux, Windows y macOS.
  • Versatilidad: puede usar SSH no solo para iniciar sesión en un sistema remoto, sino también para enviar archivos a través de ssh usando el comando scp.

Cómo instalar OpenSSH en Linux

Hay diferentes tipos de software SSH disponibles tanto para el servidor como para el cliente, como Teleport, wolfSSH, OpenSSH, etc. Sin embargo, el software SSH más común es OpenSSH. OpenBSD Secure Shell u OpenSSH, como se le conoce comúnmente, se lanzó por primera vez el 1 de diciembre de 1999 como un software multiplataforma, gratuito y de código abierto. A continuación, hemos demostrado el proceso de instalación de OpenSSH en Linux.

Instalar cliente OpenSSH

Para conectarse a un servidor Linux remoto, debe tener instalado “OpenSSH Client” en su sistema. Utilice estos pasos para instalarlo: –

1. Utilice el comando específico de su distribución de Linux para instalar el cliente OpenSSH en su sistema. Estamos utilizando un sistema basado en Debian para esta guía.

  • Para sistemas basados ​​en Debian:
sudo apt-get install openssh-client
  • Para sistemas basados ​​en Fedora:
sudo dnf install openssh-client
instalando el cliente opensh en debian

2. Para verificar si el cliente SSH se ha instalado correctamente o no, simplemente ejecute este comando. Obtendrá un resultado similar a la siguiente captura de pantalla.

ssh
verificando la instalación de ssh

Instalar servidor OpenSSH

Cada vez que crea una nueva instancia de servidor remoto utilizando cualquier proveedor de computación en la nube popular, básicamente viene preinstalado con el software SSH del lado del servidor, a menudo con el servidor OpenSSH. Pero en el caso de un servidor “en las instalaciones”, es posible que deba instalarlo manualmente. Siga estos pasos para instalar el servidor OpenSSH en su servidor remoto:

1. Primero, use este comando para verificar si el servidor OpenSSH está instalado en el sistema o no.

ssh localhost
comprobando si el servidor ssh está instalado o no

Si ve este tipo de salida, significa que el servidor SSH no está instalado y debe instalarlo manualmente.

2. Use el comando específico de la distribución para instalar el servidor OpenSSH:

  • Sistemas Linux basados ​​en Debian:
sudo apt-get install openssh-server
  • Sistemas basados ​​en RedHat/Fedora:
sudo dnf install openssh-server
instalando el servidor openssh en un servidor linux remoto

3. Una vez instalado, verifique si el servidor SSH se está ejecutando o no usando este comando. En algunos casos, el servidor SSH se iniciará por sí solo sin necesidad de ejecutar ningún comando.

sudo service ssh status

Si aún no está activado, verá una salida que dice “inactivo (muerto)”.

comprobando el estado del servicio ssh

4. En caso de que diga inactivo, use este comando para activarlo:

sudo service ssh start
habilitar el servicio ssh

5. Para verificar si se está ejecutando o no, use este comando nuevamente:

sudo service ssh status

Esta vez verá un punto verde delante del nombre y “activo (en ejecución)”.

servicio ssh listo para conectarse en un servidor Linux remoto

Comando SSH en Linux: sintaxis y opciones

Ahora que tiene SSH en funcionamiento, veamos la sintaxis y las diversas opciones que puede emparejar con él:

ssh <options> <username>@<remote_server_ip_address_or_domain_name>

Algunas de las opciones comunes que puede emparejar con el comando SSH son:

Opción Descripción
-4 Permite la conexión solo con direcciones IPv4.
-6 Habilita el reenvío de GUI (para sistemas basados ​​en X11)
-A Habilita el reenvío de la conexión del agente de autenticación.
-C Comprime todos los datos transferidos para una tasa de transferencia más rápida.
-pag Se utiliza para especificar el número de puerto para conectarse con el servidor remoto.
-X Habilita el reenvío de GUI (para sistemas basados ​​en X11)

Conéctese a un servidor Linux remoto usando SSH

Después de aprender la sintaxis y las opciones del comando SSH, ahora es el momento de ver cómo conectarse a un servidor Linux remoto mediante SSH. Utilice cualquiera de los métodos mencionados a continuación para el mismo.

Conectar usando el comando SSH

1. Primero anote la dirección IP del servidor remoto al que desea conectarse. Si no conoce la dirección IP, use este comando para imprimir la dirección IP pública:

curl ifconfig.me
IP pública del servidor Linux remoto para conectarse usando ssh

Si su sistema está conectado a la misma red que el servidor remoto, use este comando:

ip addr

Se recomienda conectar un servidor remoto a través de una VPN para mayor seguridad. Consulte nuestra guía sobre qué es una VPN y cómo funciona.

2. Ahora use este comando para conectar el servidor remoto:

ssh <username>@<remote_server_ip_address_or_domain_name>

3. Escriba la contraseña del nombre de usuario con el que desea iniciar sesión y presione Intro.

4. Una vez que inicie sesión con éxito en el servidor remoto, verá una pantalla de bienvenida como se muestra a continuación.

usando ssh para conectarse a un servidor Linux remoto

En este caso, la IP de nuestro servidor remoto es “172.105.253.48” y el nombre de usuario es “root”:

Inicie sesión con su clave SSH

La autenticación basada en clave SSH ofrece mayor seguridad y comodidad que la autenticación basada en contraseña, pero requiere un poco de configuración inicial. Implica autenticarse usando un par de claves criptográficas: una clave pública ubicada dentro del servidor remoto y una clave privada guardada con el cliente, lo que elimina la molestia de ingresar la contraseña por parte del usuario. Siga estos pasos para configurar el inicio de sesión sin contraseña con SSH:

1. Genere un nuevo par de claves SSH en su sistema local usando este comando:

ssh-keygen -t rsa

Este comando utilizará el famoso algoritmo RSA (Rivest-Shamir-Adleman) para generar el par de claves. Puede usar cualquier otro algoritmo de su elección como Diffie – Hellman Key Exchange (DHE), Digital Signature Algorithm (DSA), etc.

generar un nuevo par de claves ssh

2. Ahora se le solicitará la ubicación para almacenar la clave. Escriba la ruta donde desea almacenar o déjela en blanco para almacenar en la ubicación predeterminada “~/.ssh/id_rsa” y presione enter.

3. A continuación, se le pedirá una frase de contraseña. Ingrese una frase de contraseña segura o déjela en blanco y presione enter.

frase de contraseña para generar un par de claves ssh

4. Una vez que se generen sus claves, verá un mensaje de éxito junto con un “randomart” de la clave.

randomart para las claves ssh generadas

5. Ahora transfiera la clave SSH pública al servidor remoto usando este comando. También puede usar el comando scp para transferir de forma segura la clave RSA pública.

ssh-copy-id <username>@<remote_server>
transferir claves ssh generadas al servidor Linux remoto

6. Una vez que haya terminado con los pasos anteriores, simplemente use el comando SSH con la siguiente sintaxis para iniciar sesión sin contraseña:

ssh <username>@<remote_server_ip_address_or_domain_name>
usando el par de claves ssh para conectarse a un servidor Linux remoto

Conéctese al servidor usando el archivo de configuración SSH

Cada vez que se realiza una nueva conexión SSH, el comando SSH funciona de acuerdo con las configuraciones almacenadas en el archivo de configuración SSH. Con un poco de magia de edición, puede especificar a qué puerto y servidor Linux remoto conectarse, etc., todo a través de este archivo de configuración SSH.

1. Abra el archivo de configuración ssh usando el comando Nano en Linux o cualquier otro editor de texto de Linux de su elección.

sudo nano ~/.ssh/config

Esto abrirá el archivo de configuración específico del usuario. Para abrir el archivo de configuración para todos los usuarios, use este comando

sudo nano /etc/ssh/ssh_config
abriendo el archivo de configuración ssh

2. Ahora, use esta sintaxis para editar el archivo de configuración:

Host <remote_server_1_name>
    ssh_option_1 value
    ssh_option_2 value

Host <remote_server_2_name>
    ssh_option_1 value
    ssh_option_2 value

En la sintaxis anterior, ssh_options son las mismas opciones que empareja con el comando ssh. Aquí hay un ejemplo del archivo de configuración:

Host remote_1
    HostName 192.168.1.10
    User test1
    Port 22

Host remote2
    HostName 172.105.253.48
    User root
    Port 22
editando el archivo de configuración ssh

Aquí, hemos creado entradas para dos servidores remotos junto con sus opciones. Puede especificar tantos servidores remotos junto con sus opciones.

3. Una vez que haya terminado de editar el archivo de configuración, guarde y salga del editor.

4. Para conectarse a un servidor remoto usando el archivo de configuración SSH, use esta sintaxis:

ssh <remote_server_name>

Por ejemplo, para conectarse al servidor remoto2, use el siguiente comando:

ssh remote2
usando el archivo de configuración ssh para conectarse a un servidor Linux remoto

Preguntas frecuentes

¿Cómo enumerar todas las sesiones SSH en Linux?

Para enumerar todas las conexiones SSH en Linux, use este comando: ss -t -a

¿SSH siempre está en el puerto 22?

De manera predeterminada, el servidor SSH permite conexiones entrantes en el puerto 22. Para habilitar SSH en un puerto diferente, abra el archivo /etc/ssh/ssh_config en un editor de texto de Linux y establezca el puerto en cualquier valor entre 1024 y 65536.

Similar Posts

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *