GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar conexiones SSH personalizadas para simplificar el acceso remoto

SSH (cliente SSH ) es un programa para acceder de forma remota a una máquina, permite al usuario ejecutar comandos en un host remoto. Es uno de los métodos más recomendados para iniciar sesión en un host remoto, ya que está diseñado para proporcionar comunicaciones cifradas seguras entre dos hosts que no son de confianza a través de una red insegura.

SSH utiliza un archivo de configuración tanto para todo el sistema como específico del usuario (personalizado). En este tutorial, explicaremos cómo crear un archivo de configuración ssh personalizado y usar ciertas opciones para conectarse a hosts remotos.

Requisitos:

  1. Debe tener instalado el cliente OpenSSH en su escritorio Linux.
  2. Comprender las opciones comunes utilizadas para conexiones remotas a través de ssh.

Archivos de configuración del cliente SSH

A continuación se encuentran las ubicaciones de los archivos de configuración del cliente ssh:

  1. /etc/ssh/ssh_config – este es el archivo de configuración predeterminado para todo el sistema. Contiene configuraciones que se aplican a todos los usuarios de la máquina cliente ssh.
  2. ~/.ssh/config o $HOME/.ssh/config – es el archivo de configuración personalizado/específico del usuario. Tiene configuraciones que se aplican a un usuario específico. Por lo tanto, anula la configuración predeterminada en el archivo de configuración de todo el sistema. Este es el archivo que crearemos y usaremos.

De forma predeterminada, los usuarios se autentican en ssh mediante contraseñas; sin embargo, puede configurar el inicio de sesión sin contraseña de ssh mediante ssh keygen en 5 sencillos pasos.

Nota :En caso de que el directorio ~/.ssh no existe en su sistema de escritorio, créelo con los siguientes permisos.

$ mkdir -p ~/.ssh
$ chmod 0700 ~/.ssh   

El chmod El comando anterior implica que solo el usuario puede tener permisos de lectura, escritura y ejecución en el directorio según lo requiera la configuración de ssh.

Cómo crear un archivo de configuración SSH específico para el usuario

Este archivo generalmente no se crea de forma predeterminada, por lo que debe crearlo con permisos de lectura/escritura solo para el usuario.

$ touch ~/.ssh/config
$ chmod 0700 ~/.ssh/config

El archivo anterior contiene secciones definidas por las especificaciones de los hosts, y una sección solo se aplica a los hosts que coinciden con uno de los patrones establecidos en la especificación.

El formato convencional de ~/.ssh/config es el siguiente, y todas las líneas vacías, así como las líneas que comienzan con ‘#’ se consideran como comentarios:

Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

Del formato anterior:

  1. Host host1 – es una definición de encabezado para host1 , aquí es donde comienza una especificación de host y termina con la siguiente definición de encabezado, Host host2 haciendo una sección.
  2. host1 , host2 son simplemente alias de host para usar en la línea de comando, no son los nombres de host reales de los hosts remotos.
  3. Las opciones de configuración como ssh_option1=value1 , ssh_option2=valor1 valor2 aplicar a un host coincidente y debe tener sangría para un formato bien organizado.
  4. Para una opción como ssh_option2=value1 value2 , el valor valor1 se considera primero, luego value2 .
  5. La definición de encabezado Host * (donde * es un patrón (comodín que coincide con cero o más caracteres) coincidirá con cero o más hosts.

Aún considerando el formato anterior, así es como ssh lee el archivo de configuración. Si ejecuta un comando ssh para acceder de forma remota a host1 así:

$ ssh host1

El comando ssh anterior hará lo siguiente:

  1. coincide con el alias de host host1 en el archivo de configuración y aplica las opciones establecidas en el encabezado de definición, Host host1 .
  2. luego pasa a la siguiente sección de host, Host host2 y descubre que el nombre proporcionado en la línea de comando no coincide, por lo que no se utilizan opciones desde aquí.
  3. Procede a la última sección, Host * , que coincide con todos los hosts. Aquí, aplica todas las opciones de esta sección a la conexión del host. Pero no puede anular los valores de las opciones que ya se usaron en la(s) sección(es) anterior(es).
  4. Lo mismo se aplica a host2 .

Cómo usar el archivo de configuración SSH específico del usuario

Una vez que haya entendido cómo funciona el archivo de configuración del cliente ssh, puede crearlo de la siguiente manera. Recuerde usar opciones y valores (alias de host, números de puerto, nombres de usuario, etc.) aplicables a su entorno de servidor.

Abra el archivo de configuración con su editor favorito:

$ vi ~/.ssh/config

Y define las secciones necesarias:

Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

Una explicación detallada de las opciones de configuración de ssh anteriores.

  1. Nombre de host – define el nombre de host real para iniciar sesión, alternativamente, puede usar una dirección IP numérica, también está permitido (tanto en la línea de comando como en HostName especificaciones).
  2. Usuario – especifica el usuario con el que iniciar sesión.
  3. Puerto – establece el número de puerto para conectarse en el host remoto, el valor predeterminado es 22 . Utilice el número de puerto configurado en el archivo de configuración sshd del host remoto.
  4. Protocolo – esta opción define las versiones de protocolo que ssh debe admitir en orden de preferencia. Los valores habituales son ‘1’ y '2' , las versiones múltiples deben estar separadas por comas.
  5. Archivo de identidad – especifica un archivo del que se lee la identidad de autenticación DSA, Ed25519, RSA o ECDSA del usuario.
  6. Reenviar X11 – define si las conexiones X11 se redirigirán automáticamente a través del canal seguro y el conjunto DISPLAY. Tiene dos valores posibles “yes” o “no” .
  7. Compresión – se usa para configurar la compresión durante la conexión remota con “yes” valor. El valor predeterminado es “no” .
  8. Intervalo de vida del servidor – establece un intervalo de tiempo de espera en segundos después del cual, si no se ha recibido una respuesta (o datos) del servidor, ssh enviará un mensaje a través del canal encriptado para solicitar una respuesta del servidor. El valor predeterminado es 0 , lo que significa que no se enviarán mensajes al servidor, o 300 si se ha definido la opción BatchMode.
  9. ServerAliveCountMax – establece el número de mensajes activos del servidor que se pueden enviar sin que ssh reciba ninguna respuesta del servidor.
  10. Nivel de registro – define el nivel de detalle que se utiliza al registrar mensajes desde ssh. Los valores permitidos incluyen:QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 y DEBUG3. Y el valor predeterminado es INFO.

La forma estándar de conectarse a cualquier host remoto de Linux (CentOS 7, en mi caso), definida en la sección dos del archivo de configuración anterior, normalmente escribiríamos el siguiente comando:

$ ssh -i ~/.ssh/id_rsa -p 22 [email protected]

Sin embargo, con el uso del archivo de configuración del cliente ssh, simplemente podemos escribir el siguiente comando:

$ ssh centos7 

Puede encontrar más opciones y ejemplos de uso en la página del manual de configuración del cliente ssh:

$man ssh_config

Eso es todo por ahora, en esta guía, le explicamos cómo usar un archivo de configuración de cliente ssh específico del usuario (personalizado) en Linux. Utilice el formulario de comentarios a continuación para escribirnos sobre este artículo.


Linux
  1. Cómo configurar el acceso remoto a MySQL en cPanel

  2. Cómo encontrar conexiones SSH activas en Linux

  3. Cómo configurar la autenticación basada en clave SSH en Linux

  4. ¿Cómo configurar fuentes en una conexión X remota (xdmcp Vs. Ssh)?

  5. Túnel vpn de acceso remoto SSH

Cómo SSH en un directorio particular en Linux

Cómo configurar el reenvío X11 usando SSH en Linux

Cómo configurar un banner SSH personalizado

Cómo usar SSH para conectarse a un servidor remoto

Cómo:Administración remota de FreeBSD

Cómo configurar el tiempo de espera en la masilla del cliente SSH