Cómo usar el comando SSH e instalar OpenSSH

27 feb 2021 5 min di lettura
Cómo usar el comando SSH e instalar OpenSSH
Indice dei contenuti

Introducción

Secure Shell (SSH) es un protocolo de red criptográfico que se utiliza para una conexión cifrada entre un cliente y un servidor. El cliente ssh crea una conexión segura al servidor SSH en una máquina remota. La conexión cifrada se puede utilizar para ejecutar comandos en el servidor, tunelización X11, reenvío de puertos y más.

Hay varios clientes SSH disponibles tanto gratuitos como comerciales, siendo OpenSSH el cliente más utilizado. Está disponible en todas las plataformas principales, incluidas Linux, OpenBSD, Windows, macOS y otras.

En este artículo, explicaremos cómo usar el cliente de línea de comandos de OpenSSH ( ssh ) para iniciar sesión en una máquina remota y ejecutar comandos o realizar otras operaciones.

OpenSSH

El programa cliente de OpenSSH se llama ssh y se puede llamar desde la terminal. El paquete de cliente OpenSSH también proporciona otras utilidades SSH como scp y sftp que se instalan junto con el comando ssh

Instale el cliente OpenSSH en Linux

El cliente OpenSSH está preinstalado en la mayoría de las distribuciones de Linux de forma predeterminada. Si su sistema no tiene el cliente ssh instalado, puede instalarlo usando el administrador de paquetes de su distribución.

Instale OpenSSH en Ubuntu y Debian

sudo apt update
sudo apt install openssh-client

Instale OpenSSH en CentOS y Fedora

sudo dnf install openssh-clients

Instale OpenSSH en Windows 10

La mayoría de los usuarios de Windows usan Putty para conectarse a una computadora remota a través de SSH. Sin embargo, las últimas versiones de Windows 10 incluyen un cliente y un servidor OpenSSH. Ambos paquetes se pueden instalar a través de la GUI o PowerShell.

Para encontrar el nombre exacto del paquete OpenSSH, escriba el siguiente comando:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

El comando debería devolver un mensaje de salida similar al siguiente:

Name: OpenSSH.Client~~~~0.0.1.0
 State: NotPresent
 Name: OpenSSH.Server~~~~0.0.1.0
 State: NotPresent

Una vez que sepa el nombre del paquete, instálelo ejecutando:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Si tiene éxito, la salida se verá así:

Path:
 Online: True
 RestartNeeded: False

Instalo OpenSSH en macOS

macOS viene con el cliente OpenSSH instalado de forma predeterminada.

Cómo usar el comando ssh

Para acceder a una máquina remota a través de SSH, se deben cumplir los siguientes requisitos:

  • Se debe ejecutar un servidor SSH en la computadora remota.
  • El puerto SSH debe estar abierto en el firewall de la computadora remota.
  • Necesita conocer el nombre de usuario y la contraseña de la cuenta remota. La cuenta debe tener privilegios de acceso remoto adecuados.

La sintaxis básica del ssh es la siguiente:

ssh [OPTIONS] [USER@]:HOST

Para usar el ssh, abra su Terminal o PowerShell y escriba ssh seguido del nombre de host remoto:

ssh ssh.noviello.it

Cuando se conecte a una máquina remota a través de SSH por primera vez, verá un mensaje como el siguiente.

The authenticity of host 'ssh.noviello.it (192.111.122.333)' can't be established.
 ECDSA key fingerprint is SHA256:PvzTdh83hdjaie8dhqEzz38fhF7lgA/9/2bLSiO3QQQBFG.
 Are you sure you want to continue connecting (yes/no)?

Cada host tiene una huella digital única almacenada en el ~/.ssh/known_hosts.

Escriba yes para almacenar la huella digital remota y se le pedirá que ingrese la contraseña.

Warning: Permanently added 'ssh.noviello.it' (ECDSA) to the list of known hosts.

 [email protected]'s password:

Después de ingresar la contraseña, iniciará sesión en la computadora remota.

Cuando no se proporciona un nombre de usuario, el ssh utiliza el nombre de inicio de sesión actual del sistema.

Para iniciar sesión como otro usuario, especifique el nombre de usuario y el host en el siguiente formato:

ssh username@hostname

El nombre de usuario también se puede especificar con la opción -l

ssh -l username hostname

De forma predeterminada, cuando no se proporciona ningún puerto, el cliente SSH intentará conectarse al servidor remoto en el puerto 22. En algunos servidores, los administradores están cambiando el puerto SSH predeterminado para agregar una capa adicional de seguridad al servidor y reducir el riesgo de ataques. automatizado.

Para conectarse en un puerto no predeterminado, use la -p para especificar el puerto:

ssh -p 5522 username@hostname

Si tiene problemas de autenticación o conexión, use la -v para decirle al ssh que imprima mensajes de depuración:

ssh -v username@hostname

Para aumentar el nivel de verbosidad, use -vv o -vvv.

El ssh acepta varias opciones.

Para obtener una lista completa de todas las opciones, lea la página de manual ssh escribiendo n terminal:

man ssh

Archivo de configuración SSH

Si se conecta a varios sistemas remotos a través de SSH a diario, encontrará que recordar todas las direcciones IP remotas, diferentes nombres de usuario, puertos no estándar y varias opciones de línea de comando es difícil, si no imposible.

El cliente OpenSSH lee las opciones establecidas en el archivo de configuración por usuario ( ~/.ssh/config ). En este archivo, puede almacenar diferentes opciones de SSH para cada máquina remota a la que se conecte.

A continuación, se muestra un ejemplo de una configuración SSH:

Host dev
 HostName dev.noviello.it
 User alice
 Port 4422

Al invocar el cliente ssh escribiendo el ssh dev, se ~/.ssh/config se utilizarán los detalles de conexión especificados para el host dev. En este ejemplo, ssh dev es equivalente a lo siguiente:

ssh -p 4422 [email protected]

Para obtener más información, consulte el artículo sobre el archivo de configuración SSH.

Autenticación de clave pública

El protocolo SSH admite varios mecanismos de autenticación.

El mecanismo de autenticación basado en claves públicas le permite acceder al servidor remoto sin escribir la contraseña.

Este método funciona generando un par de claves criptográficas utilizadas para la autenticación. La clave privada se almacena en el dispositivo cliente y la clave pública se transfiere a cada servidor remoto al que desea acceder. El servidor remoto debe estar configurado para aceptar la autenticación de clave.

Si aún no tiene un par de claves SSH en su computadora local, puede generar uno escribiendo:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Se le pedirá que escriba una frase de contraseña segura. Si desea utilizar la frase de contraseña, depende de usted.

Una vez que tenga su par de claves, copie la clave pública en el servidor remoto:

ssh-copy-id username@hostname

Ingrese la contraseña del usuario remoto y la clave pública se agregará al authorized_keys

Una vez que se carga la clave, puede iniciar sesión en el servidor remoto sin requerir una contraseña.

Al configurar la autenticación basada en claves, puede simplificar el proceso de inicio de sesión y aumentar la seguridad general del servidor.

Reenvío de puertos

El túnel SSH o el reenvío de puertos SSH es un método para crear una conexión SSH cifrada entre un cliente y una máquina servidor a través de la cual se pueden reenviar los puertos de servicio.

El reenvío SSH es útil para transportar datos de red de servicios que utilizan un protocolo no cifrado, como VNC o FTP, acceden a contenido restringido geográficamente o evitan los firewalls intermedios. Básicamente, puede reenviar cualquier puerto TCP y tráfico de túnel a través de una conexión SSH segura.

Hay tres tipos de reenvío de puertos SSH:

Reenvío de puertos locales

El reenvío de puerto local le permite reenviar una conexión desde el host del cliente al host del servidor SSH y luego al puerto del host de destino.

Para crear un reenvío de puerto local, use la -L para el cliente ssh

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

La opción -f le dice al ssh que se ejecute en segundo plano y el -N le dice que no ejecute un comando remoto.

Reenvío de puerto remoto

El reenvío de puerto remoto es lo opuesto al reenvío de puerto local. Reenvía un puerto desde el host del servidor al host del cliente y luego al puerto del host de destino.

La -L le dice al ssh que cree un reenvío de puerto remoto:

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

Reenvío dinámico de puertos

El reenvío dinámico de puertos crea un servidor proxy SOCKS que permite la comunicación a través de una variedad de puertos.

Para crear un reenvío de puertos dinámico (SOCKS), pase la -D al cliente ssh:

ssh -R [LOCAL_IP:]LOCAL_PORT -N -f username@hostname

Para obtener información más detallada e instrucciones detalladas, consulte el artículo sobre cómo configurar el túnel de reenvío de puertos (SSH).

Conclusión

Para conectarse a un servidor remoto a través de SSH, use el ssh seguido del ssh username@hostname.

Saber cómo usar el ssh es esencial para la administración remota del servidor.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.