GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué es el comando SSH y cómo usar SSH para conectarse a un servidor remoto?

Puede haber momentos en los que sea necesario iniciar sesión en una computadora de forma remota. Es posible que necesite acceder a un archivo, necesite ayudar a un amigo con un problema o incluso transferir archivos entre computadoras. Sea lo que sea Secure Shell (SSH) le permite conectarse a otra computadora que ejecuta Linux (o, de hecho, a otro sistema Unix como BSD o Solaris) a través de una conexión cifrada. Para que un host remoto reciba conexiones SSH, debe tener el daemon ejecutándose (sshd) y debe aceptar paquetes entrantes en el puerto 22 si se utiliza un cortafuegos.

Cómo funciona SSH

La idea detrás de SSH es permitir que un usuario interactúe de forma remota con una computadora a través de la terminal a través de una conexión cifrada. Esto significa que los datos transmitidos (como el nombre de usuario y la contraseña utilizados para iniciar sesión) son seguros, lo que evita que un atacante recopile fácilmente datos confidenciales mediante un rastreador de paquetes, que sería el caso si estuviera utilizando Remote Shell (RSH) a través de Internet porque sus datos de inicio de sesión se enviarán al servidor como texto sin formato (sin cifrado).

Configurar SSH

Si su computadora no puede recibir conexiones SSH, deberá instalar el protocolo SSH si aún no está instalado. Los sistemas como Ubuntu deben configurar el demonio SSH (sshd) para que se ejecute al inicio. Si hay un firewall presente, es posible que también deba configurar los ajustes para permitir conexiones entrantes al puerto 22 o cualquier puerto que haya elegido SSH para aceptar conexiones entrantes.

$ sudo apt install ssh   

Una demostración sencilla

Como ocurre con muchas cosas con Linux, el proceso de iniciar sesión en un shell remoto es simple. Abramos una terminal e iniciemos sesión en una máquina con el nombre de usuario "unix_allsort":

$ ssh [email protected] 

Si esta es la primera vez que inicia sesión en un host en particular usando su computadora con el usuario actual, le preguntará si desea aceptar ese host en la lista de conexiones conocidas. Si no es así y recibe ese mensaje, podría ser un host completamente diferente, ¡lo que podría indicar que alguien se está haciendo pasar por esa computadora!

Una vez que se haya autenticado, debería poder navegar por el sistema como lo haría si estuviera en la computadora en persona.

Incluso podría usar SSH en esa computadora para acceder a otra computadora remota:

[email protected]:~$ ssh [email protected]   

Ejecutar programas en hosts remotos O SSH Ejecutar comando remoto

Hay una opción para ejecutar una aplicación en un host remoto una vez que haya iniciado sesión mediante SSH. Un ejemplo sería iniciar un editor para editar un archivo en particular en dicho host.

$ ssh -t [email protected] vim ~/Documents/list.txt

Podría usar vim como lo haría si estuviera usando esa computadora en persona. La opción '-t' es necesaria siempre que desee iniciar programas como vim desde un host remoto. Este parámetro se utiliza para forzar la asignación de pseudoterminales. La página de manual indica que los programas basados ​​en pantalla, como vim, deben iniciarse con esta opción por ese motivo. Si falta esto, es posible que algunas aplicaciones de terminal no funcionen correctamente.

Aplicaciones GUI

SSH también proporciona una forma de iniciar un programa GUI X11, como Firefox, en lugar de un programa de solo texto.

$ ssh -X [email protected] 

Firefox El parámetro '-X' simplemente le dice al host remoto que permita que la computadora que se conecta inicie muchas aplicaciones X cuando se le ordene hacerlo, ya sea a través del shell o de otra manera. Muchos programas se pueden ejecutar de esta manera, navegadores web, editores, incluso algunos programas de Windows a través de Wine. Descubrí que los emuladores de terminal en X se niegan a ejecutarse. Además, consulte la página del manual para obtener más información sobre el reenvío X11.

Nota: Puede encontrar este error al iniciar sesión usando SSH con el reenvío X11 habilitado:/usr/bin/xauth:tiempo de espera en el archivo de autorización de bloqueo /home/your_home/.Xauthority Si esto ocurre alguna vez, el problema es que ya hay un archivo de bloqueo para 'xauth' existe La solución es eliminar el archivo de bloqueo. Puede haber más de uno, así que ejecute este comando para eliminarlos (a la fuerza si es necesario):

$ rm -rf ~/.Xauthority-* 

Cierre la sesión de SSH y vuelva a iniciar sesión. A continuación, debería poder ejecutar X aplicaciones de nuevo.

Configuración de SSH sin contraseña

Es posible iniciar sesión de forma remota en una computadora sin tener que ingresar sus credenciales. Esto requiere que las computadoras estén configuradas para permitir que su computadora inicie sesión de tal manera, que se puede lograr mediante el uso de pares de claves generados usando 'ssh-keygen '.

En primer lugar, se debe generar la clave. Aquí, es aceptable seguir con los valores predeterminados. Dado que el objetivo de este ejercicio es omitir el ingreso de cualquier contraseña o frase de contraseña en el terminal cada vez que se inicia una sesión, deseamos no tener una frase de contraseña para esta clave.

Una vez que se ha creado todo, el ky que se encuentra en el archivo de identidad debe instalarse en la computadora remota:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Si estos pasos se realizaron correctamente, debería poder iniciar sesión a través de SSH en la PC sin que se le solicite una contraseña.

Herramientas que dependen de SSH

Copia segura

SCP (Secure Copy) permite a los usuarios copiar archivos hacia o desde un host remoto a través de una conexión segura. La sintaxis es muy similar al comando 'cp' donde especifica los archivos o carpetas y su destino. Aquí hay un ejemplo:

$ scp ~/Documents/shopping.odt [email protected]:~/Documents 

Acabamos de copiar un archivo a través de Internet a través de una conexión segura a una computadora remota. Lo mismo se puede hacer con las carpetas:

$ scp -r [email protected]:~/Documents/Reports ~/Documents 

Esto copia una carpeta (de ahí la '-r' para recursivo) y su contenido desde una PC remota a su computadora.

Protocolo de transferencia de archivos SSH (SFTP)

SFTP permite el acceso seguro y la transmisión de archivos utilizando el protocolo de transferencia de archivos a través de SSH.

Conclusión

Con SSH, puede iniciar sesión fácilmente en otra computadora desde casi cualquier lugar en circunstancias normales. El reenvío X11 se puede habilitar para ejecutar aplicaciones GUI desde la máquina remota, y los programas se pueden iniciar en lugar de iniciar un shell. La página del manual para SSH proporciona mucha información útil, así que échale un vistazo.


Linux
  1. ¿Qué es un comando Chown en Linux y cómo usarlo?

  2. ¿Qué es un comando cURL y cómo usarlo?

  3. Cómo usar el comando Linux Rsync (sincronización remota)

  4. Cómo conectarse al servidor ssh con plink y cmd y clave pública

  5. Cómo conectar un host remoto usando el comando ssh

Cómo usar SSH para conectarse a un servidor remoto

Cómo instalar y usar el comando fd en Linux

¿Qué es EasyApache y cómo lo uso?

Cómo instalar y usar el servidor Xrdp (escritorio remoto) en el sistema Linux

Cómo generar y usar una clave SSH usando PuTTY

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