GNU/Linux >> Tutoriales Linux >  >> Linux

Use el archivo de configuración SSH para administrar las conexiones SSH a varios servidores remotos

Si está un poco familiarizado con SSH, sabe que puede usarlo para conectarse a sistemas Linux remotos.

Usar SSH para conectarse a un sistema remoto es simple. Todo lo que necesitas hacer es usar un comando como este:

ssh [email protected]_IP 

Esto se conecta al puerto SSH predeterminado 22. También puede especificar el puerto si lo desea.

Ahora bien, todo esto es simple y simple si solo tiene un servidor. Incluso si no recuerda la dirección IP del servidor, puede realizar una búsqueda inversa en el historial usando el famoso atajo de teclado de terminal Ctrl+R y encontrar el comando SSH que usó en el pasado.

Pero las cosas se complican cuando tienes que administrar varios servidores. Tengo alrededor de diez servidores a los que me conecto de vez en cuando. Algunos son servidores de producción y otros son servidores de prueba.

Ahora, hacer un seguimiento de estos servidores no es fácil. Incluso si puedo encontrar los comandos SSH del historial, es difícil adivinar qué IP pertenece a qué servidor.

Por supuesto, puedo abrir mis paneles en Linode, UpCloud, DigitalOcean y Google Cloud para obtener la IP o mantener una lista en mi sistema local.

Una forma mejor y más fácil es usar el archivo de configuración SSH.

Uso del archivo de configuración SSH para conectarse fácilmente a servidores remotos

El archivo de configuración de SSH le permite crear diferentes perfiles para diferentes configuraciones de host. No hay límite para dichos perfiles y puede agregar tantos como sea posible.

Por lo tanto, si se conecta a varios sistemas remotos a través de SSH, la creación de perfiles SSH será una buena medida para ahorrar tiempo.

Déjame mostrarte cómo usarlo.

Paso 1:Crear el archivo de configuración SSH

Cuando instale SSH, tendrá un directorio ~/.ssh creado automáticamente. Este directo contiene su clave pública, clave privada un archivoknown_hosts. Su configuración también se almacena aquí.

Al menos en Ubuntu, el archivo de configuración SSH no se crea de forma predeterminada. Puede crear fácilmente este archivo usando el comando táctil como este:

touch ~/.ssh/config

Paso 2:Agregar un perfil SSH en el archivo de configuración

Ahora que tiene el archivo de configuración SSH, puede editarlo usando Vim o Nano. Déjame mostrarte un ejemplo de la sintaxis que debes seguir.

Digamos que te conectas a un servidor con IP 275.128.172.46. Su nombre de usuario es Alice y el servidor se utiliza para alojar su sitio web. Para reforzar la seguridad SSH, utilice el puerto 1500 en lugar del puerto SSH predeterminado 22.

Puede agregar toda esta información de la siguiente manera en su archivo ~/.ssh/config:

Host website
        Hostname 275.128.172.46
        User alice
        Port 1500

Simplemente guarde la información en el archivo. No es necesario reiniciar ningún servicio.

Ahora, en lugar de escribir un comando largo como este:

ssh [email protected] -p 1500

Simplemente puede usar este comando (la finalización de tabulación también funciona):

ssh website

Cuando ejecuta el comando anterior, ssh busca un sitio web con nombre de host en ~/.ssh/config. Si encuentra un host con ese nombre, obtiene toda la información relacionada y la utiliza para realizar una conexión SSH.

Es posible que se pregunte algunas cosas, así que lo mencionaré aquí:

  • No hay restricciones de espacio o sangría de tabulación al ingresar la información del host. El espacio o la sangría de tabulación se utilizan para hacer que el archivo de configuración sea fácilmente comprensible.
  • El nombre de host puede ser la dirección IP del servidor o un nombre de host que se pueda resolver en su red.
  • Todos los parámetros como nombre de host, usuario y puerto son opcionales. Sin embargo, personalmente aconsejo mantener al menos el nombre de host porque eso es lo que necesita (y olvida) la mayor parte del tiempo.
  • Si su archivo de configuración SSH está mal configurado, se producirá un error cuando intente utilizarlo para la conexión SSH.
  • No puede guardar contraseñas en la configuración de SSH. Aconsejo agregar su clave SSH pública al servidor para facilitar el acceso.

Paso 3:Agregar múltiples perfiles en el archivo de configuración SSH

El paso anterior le dio una idea sobre cómo agregar un perfil SSH. Avancemos al siguiente paso agregando varios perfiles.

Así es como se ve ahora el archivo de configuración de SSH:

Host website
        Hostname 275.128.172.46
        User alice
        Port 1500
Host forum-server
        Hostname 275.128.172.47
        User alice

Host main-server
        Hostname 275.128.172.49

Host common-test-server
        Hostname test-server

Host *
        User root

Esta vez, he agregado cuatro perfiles SSH diferentes.

¿Te diste cuenta del Anfitrión * entrada al final del archivo? Puede usar esta entrada para agregar un parámetro común a todos los perfiles si ese parámetro no se ha mencionado explícitamente para el perfil.

Entonces, si trato de usar el perfil SSH del servidor principal, automáticamente eliminará al usuario root.

ssh servidor principal =ssh [email protected]

Orden de la configuración SSH

La configuración de ssh sigue el siguiente orden:

  • opciones de línea de comando
  • archivo de configuración del usuario (~/.ssh/config)
  • archivo de configuración de todo el sistema (/etc/ssh/ssh_config)

Esto significa que la prioridad se le da al comando que ingresa y luego busca en ~/.ssh/config y luego en /etc/ssh/ssh_config.

Entonces, si desea anular un perfil, puede hacerlo usando la opción -o del comando ssh.

Por ejemplo, si uso este comando:

ssh -o "User=bob" website

Tomará al usuario bob en lugar del usuario alice como se define en ~/.ssh/config (en el paso anterior).

Hay mucho más en la configuración de SSH

Para ser honesto, hay mucho más en el archivo de configuración SSH que no se puede cubrir en un solo artículo. Puede usar coincidencias de nombre/IP, subredes y demás.

El alcance de este artículo fue presentarle la configuración SSH y ayudarlo a crear perfiles SSH para conectarse fácilmente a varios sistemas Linux remotos.

Siempre puede consultar la página de manual de ssh_config para obtener más información sobre los parámetros que puede usar al crear su archivo de configuración SSH.

Espero que este consejo de SSH te haya sido útil. Si ya usa el archivo de configuración SSH y tiene algún consejo ingenioso, compártalo con el resto de nosotros en la sección de comentarios.


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

  2. Cómo usar túneles SSH para acceder a servidores restringidos

  3. Ssh:¿Copiar un archivo de nuevo al sistema local con Ssh?

  4. Por qué usamos Plesk para administrar nuestros servidores

  5. ¿Cómo usar sed para reemplazar la variable de un archivo de configuración?

Cómo usar el comando SCP para la transferencia de archivos

Uso del archivo de configuración SSH

Cómo usar SSHFS para montar directorios remotos sobre SSH

Tutorial completo sobre cómo configurar claves SSH y conexiones SSH

SSHFS:Montaje de un sistema de archivos remoto a través de SSH

Cómo usar SSH para conectarse a un servidor remoto