Uso y configuración básica del comando SSH en Linux
- 3578
- 1077
- Eduardo Tapia
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.
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.
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.mierdaSSH 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 hostSSH 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 %1Ejecutar 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.
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:
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.130Exhibir 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.130Deshabilitar 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 Sí
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.130Cambiar 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.
- « Habilitar el modo de depuración en SSH para solucionar problemas de conectividad
- Ejemplos de comando Linux RMDIR para principiantes »