Uso y configuración básica del comando SSH en Linux

Uso y configuración básica del comando SSH en Linux

Breve: En esta guía, discutiremos los casos de uso comunes de SSH. También discutiremos las configuraciones SSH de uso común que se pueden usar en la vida cotidiana para aumentar su productividad.

Cubierta segura (Ssh) es un protocolo de red ampliamente adoptado, que nos permite interactuar con hosts remotos de manera segura. Proporciona seguridad al encriptar toda la comunicación entre ellos.

Cómo usar el comando ssh en linux

En esta sección, discutiremos algunos de los casos de uso populares del Ssh protocolo.

Conectarse al host de Linux remoto

Hay varias formas de interactuar con hosts remotos de Linux utilizando protocolos como telnet, ftp, netcat, etc. Sin embargo, estos no son seguros debido a la ausencia de cifrado. Podemos usar el protocolo SSH para permitir una comunicación segura entre los hosts.

Tenemos que usar un Ssh cliente para interactuar con el host remoto. Hay muchos clientes basados ​​en GUI y CLI disponibles para Linux. Sin embargo, a lo largo de esta guía, utilizaremos una utilidad de línea de comando llamada ssh. Por defecto, el ssh La utilidad está disponible en la mayoría de las distribuciones de Linux.

La sintaxis del comando ssh es la siguiente:

$ ssh [opciones] [comandos] [args] 

Aquí, los soportes cuadrados ([]) representar los argumentos opcionales mientras que los soportes angulares () representar los argumentos obligatorios.

Conectemos al host remoto utilizando el ssh cliente:

$ ssh -l root 192.168.19.130 

En este ejemplo, especificamos el nombre de inicio de sesión utilizando el -l opción y el destino es 192.168.19.130. La conexión SSH se establece después de ingresar la contraseña correcta. Ahora en adelante, podemos ejecutar los comandos en el host remoto al igual que el sistema local.

# nombre de host 

Para terminar la sesión, podemos usar el salida comando o Ctrl+D combinación de llave.

SSH Conecte al host de Linux remoto

Es importante tener en cuenta que tenemos que autenticarnos con el host remoto para cada nueva sesión. Para evitar ingresar contraseñas cada vez, podemos configurar un inicio de sesión sin contraseña SSH.

Ejecutar comandos en el host remoto

En la sección anterior, vimos cómo establecer una conexión con un host remoto, que es adecuado solo cuando vamos a usar el host remoto durante una duración más larga. A veces, solo necesitamos ejecutar uno o dos comandos en el host remoto. En tales casos, podemos ejecutar esos comandos sin crear una sesión a largo plazo.

Ejecutemos el comando del nombre de host en el host remoto:

$ ssh -l root 192.168.19.130 nombre de host 

De manera similar, podemos ejecutar múltiples comandos en una máquina Linux remota:

$ ssh -l root 192.168.19.Nombre de host de 130 '; pwd ' 
SSH Ejecutar comandos en Linux remoto

Es importante tener en cuenta que los comandos deben estar encerrados dentro de las citas y separados por el semi-colon (;) personaje. Si desea ejecutar comandos en múltiples hosts remotos de Linux, lea nuestro artículo - PSSH - Ejecutar comandos en múltiples hosts de Linux remotos.

Ejecutar script en el host remoto

Similar a los comandos, también podemos ejecutar un script local en el host remoto. Entendamos esto con un ejemplo.

Primero, cree un script de shell simple en una máquina local con permisos ejecutables:

$ Cat Script.sh hostname pwd 

Ahora, ejecutémoslo en el host remoto:

$ ssh [correo electrónico protegido] 'bash -s' < ./script.sh 

En este ejemplo, hemos usado el -s Opción de Bash para leer el script de la entrada estándar.

SSH Ejecutar el script en Linux remoto

Copiar archivos entre los hosts

Trabajamos con los archivos y directorios muy a menudo. Una operación común que realizan los usuarios es copiar directorios y archivos. Al igual que las máquinas locales, podemos copiar archivos y directorios entre los hosts remotos utilizando el comando SCP, que copia los archivos utilizando de forma segura el protocolo SSH.

Copiemos el guion.mierda archivo al /TMP Directorio del host remoto:

$ SCP Script.sh [correo electrónico protegido]:/tmp 

Ahora, verifique que el archivo haya sido copiado:

$ ssh [correo electrónico protegido] 'ls /tmp /script.mierda 
SSH Copiar archivos a Linux remoto

De manera similar, podemos usar el comando SCP para copiar los directorios. Sin embargo, tenemos que usar el -riñonal Opción con el comando.

Habilitar compresión para SSH

Ssh admite la compresión de datos utilizando el gzip Algoritmo de compresión, que comprime todos los flujos de datos posibles como Stdin, Stdout, Stderr, etc. Esta opción es muy útil mientras se usa conexiones de red lenta.

Podemos habilitar la compresión en SSH usando el -C opción:

$ ssh -c -l root 192.168.19.130 'nombre de host' 
SSH habilita la compresión

Habilitar el modo verboso para SSH

Los usuarios de Linux a menudo necesitan depurar sesiones de SSH para investigar varios problemas relacionados con la conexión SSH y la configuración. En tales casos, podemos habilitar el modo detallado que imprime los registros de depuración de la sesión actual.

Habilitemos el modo detallado utilizando el -V opción:

$ ssh -v -l root 192.168.19.130 nombre de host 

Además de esto, podemos aumentar el nivel de verbosidad utilizando los múltiples -V opción.

  • -V - Establece el nivel de verbosidad en 1 y proporciona detalles sobre las actividades del lado del cliente.
  • -VV - Establece el nivel de verbosidad en 2 y proporciona detalles sobre el cliente y las actividades del lado del servidor.
  • -VVV - Establece el nivel de verbosidad en 3 y proporciona información más detallada sobre las actividades del cliente y del lado del servidor.

El nivel de verbosidad máximo respaldado por SSH es 3. Veamos esto en acción:

$ ssh -vvv -l root 192.168.19.130 nombre de host 
SSH ENBALE MODO PERBOSE

En el ejemplo anterior, depuración1 representa el mensaje de depuración habilitado por el nivel de verbosidad 1. Similarmente, depuración2 y depuración3 Representar los mensajes de depuración habilitados por los niveles de verbosidad 2 y 3 respectivamente.

Secuencias de escape en SSH

Podemos usar secuencias de escape con el Ssh Para administrar las sesiones de terminales del cliente. Discutamos secuencias de escape de uso común con los casos de uso apropiados.

Suspender la sesión de SSH

A veces, tenemos que realizar algunas actividades en la máquina local sin terminar la sesión actual de SSH. En tal escenario, podemos suspender la sesión actual utilizando el ~ + Ctrl + Z secuencia clave.

Primero, inicie sesión en el host remoto y ejecute el nombre de host dominio:

$ ssh -l root 192.168.19.130 # nombre de host 

A continuación, para suspender la sesión actual de primer tipo Tilde (~) personaje y luego presione el CTRL + Z llaves. Es importante tener en cuenta que el Tilde (~) El personaje no se mostrará en el stdout hasta que presionemos CTRL + Z.

Ahora, verifiquemos que la sesión haya sido suspendida:

$ empleos 

Aquí, podemos ver que la sesión SSH actual se está ejecutando en segundo plano.

Vamos a reanudar la sesión nuevamente usando el FG comandar y ejecutar el nombre de host dominio:

$ FG %1 
Ejecutar la sesión SSH en segundo plano
Terminar la sesión de SSH congelada

Estoy seguro de que debes haber visto las sesiones de SSH congeladas, que suceden cuando la sesión es interrumpida por una red inestable. Aquí, no podemos abortar la sesión usando el salida dominio. Sin embargo, podemos terminarlo usando el "~ + ." secuencia clave.

Primero, inicie sesión en el host remoto:

$ ssh -l root 192.168.19.130 

Ahora usa el "~ + ." Combinación clave para terminar la sesión actual.

Terminar la sesión SSH

En este ejemplo, podemos ver que Ssh muestra el mensaje - Conexión a 192.168.19.130 cerrado.

Lista Secuencia de escape compatible con

Una cosa interesante es que hay una secuencia de escape para enumerar todas las secuencias de escape compatibles. Podemos usar el "~ + ?" Secuencia de escape para enumerar las secuencias de escape compatibles:

Secuencias de escape de compatible

Aquí, tenemos que presionar la tecla ENTER para salir del menú de ayuda.

Cómo configurar SSH en Linux

En esta sección, discutiremos la configuración del lado del servidor para endurecer el servidor SSH. SSH Server almacena toda su configuración en /etc/ssh/sshd_config archivo. Es importante tener en cuenta que se requiere acceso a los usuarios de raíz para actualizar la configuración de SSH.

Exhibir banner ssh

Como una mejor práctica, siempre debemos mostrar el banner antes de establecer una conexión SSH. En algunos casos, desalienta a los usuarios no autorizados a acceder a hosts remotos. Veamos cómo habilitar esta configuración paso a paso.

Primero, cree un archivo de texto en un servidor remoto con un mensaje de advertencia:

# vi /etc /banner.TXT 

A continuación, agregue el siguiente mensaje de banner:

************************************************************ ******************* Advertencia !!! Estás tratando de iniciar sesión en TechMint.servidor de com. Se monitorean todas las actividades en este servidor. Rescindir la sesión de inmediato si no es un usuario autorizado. ************************************************************ ******************* 

A continuación, abra el /etc/ssh/sshd_config archivo y especifique el archivo con el Bandera directiva:

Banner /etc /banner.TXT 

Ahora, reinicie el SSHD servicio y terminar la sesión utilizando el salida dominio:

# SystemCTL reiniciar SSHD # Salir 

Finalmente, verifique el banner iniciando sesión en el host remoto:

$ ssh -l root 192.168.19.130 
Exhibir banner ssh

Aquí, podemos que el servidor muestre el banner SSH correctamente.

Deshabilitar el inicio de sesión de la raíz SSH

Hasta ahora, utilizamos el usuario root para acceder al host remoto. Sin embargo, esto es en contra del principio de menor privilegio. En un entorno de producción, el acceso a los usuarios de la raíz siempre está restringido para mejorar la seguridad.

Podemos usar el Permitrootlogin Directiva para deshabilitar el inicio de sesión del usuario root.

Primero, abra el /etc/ssh/sshd_config archivo y usar la opción No con el Permitrootlogin directiva:

Permitrootlogin no 

Ahora, reinicie el SSHD servicio y terminar la sesión utilizando el salida dominio:

# SystemCTL reiniciar SSHD # Salir 

Finalmente, verifique esto creando una nueva sesión SSH:

$ ssh -l root 192.168.19.130 
Deshabilitar el inicio de sesión de la raíz SSH

Aquí, podemos observar que no podemos iniciar sesión en el host remoto con el usuario root. Para permitir el inicio de sesión del usuario root podemos usar la opción con la misma directiva.

Cambiar el puerto SSH predeterminado

Por defecto, Ssh Utiliza el puerto TCP 22. Sin embargo, podemos configurar SSH para ejecutar en un puerto diferente I.mi. 8088.

Primero, abra el /etc/ssh/sshd_config archivo y usar el 8088 valor con el Puerto directiva:

Puerto 8088 

A continuación, reinicie el servicio SSHD y termine la sesión:

# SystemCTL reiniciar SSHD # Salir 

Ahora, iniciamos sesión en el host remoto:

$ ssh -p 8088 -l raíz 192.168.19.130 
Cambiar el puerto SSH

En este ejemplo, hemos usado el -pag opción para especificar el número de puerto.

En algunos casos, tenemos que realizar algunos otros pasos para permitir la comunicación en un puerto que no es defecto. Como identificar puertos disponibles, actualizar las reglas de firewall, la configuración de Selinux, etc.

En este artículo, discutimos el protocolo SSH y sus casos de uso común. A continuación, discutimos algunas opciones comunes. Finalmente, discutimos algunas de las configuraciones para asegurar el servidor SSH.

¿Conoces algún otro mejor uso de comandos SSH en Linux?? Háganos saber sus puntos de vista en los comentarios a continuación.