Com configurar connexions SSH personalitzades per simplificar l'accés remot


SSH (client SSH) és un programa per accedir de manera remota a una màquina, que permet a un usuari executar ordres en un host remot. És un dels mètodes més recomanats per iniciar sessió en un host remot, ja que està dissenyat per proporcionar comunicacions xifrades segures entre dos amfitrions no fiables a través d'una xarxa insegura.

SSH utilitza tant un fitxer de configuració a tot el sistema com un fitxer de configuració (personalitzat) específic per a l'usuari. En aquest tutorial, explicarem com crear un fitxer de configuració ssh personalitzat i utilitzar determinades opcions per connectar-se a amfitrions remots.

  1. Heu d'haver instal·lat el client OpenSSH al vostre escriptori Linux.
  2. Comprendre les opcions habituals que s'utilitzen per a connexions remotes mitjançant ssh.

A continuació es mostren les ubicacions dels fitxers de configuració del client ssh:

  1. /etc/ssh/ssh_config: aquest és el fitxer de configuració predeterminat de tot el sistema. Conté paràmetres que s'apliquen a tots els usuaris de la màquina client ssh.
  2. ~/.ssh/config o $HOME/.ssh/config: és el fitxer de configuració personalitzat/específic de l'usuari. Té configuracions que s'apliquen a un usuari específic. Per tant, anul·la la configuració predeterminada del fitxer de configuració de tot el sistema. Aquest és el fitxer que crearem i utilitzarem.

De manera predeterminada, els usuaris s'autentiquen a ssh mitjançant contrasenyes, però, podeu configurar l'inici de sessió ssh sense contrasenya mitjançant ssh keygen en 5 senzills passos.

Nota: En cas que el directori ~/.ssh no existeixi al vostre sistema d'escriptori, creeu-lo amb els permisos següents.

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

L'ordre chmod anterior implica que només l'usuari pot tenir permisos de lectura, escriptura i execució al directori tal com requereix la configuració de ssh.

Com crear un fitxer de configuració SSH específic de l'usuari

Aquest fitxer normalment no es crea per defecte, per la qual cosa cal que el creeu amb els permisos de lectura/escriptura només per a l'usuari.

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

El fitxer anterior conté seccions definides per les especificacions dels amfitrions, i una secció només s'aplica als amfitrions que coincideixen amb un dels patrons establerts a l'especificació.

El format convencional de ~/.ssh/config és el següent, i totes les línies buides així com les línies que comencen per ‘#’ es consideren comentaris:

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 format anterior:

  1. Amfitrió amfitrió1: és una definició de capçalera per a host1, aquí és on comença una especificació d'amfitrió i acaba amb la següent definició de capçalera, l'amfitrió amfitrió2 crea una secció.
  2. amfitrió1, amfitrió2 són simplement àlies d'amfitrió per utilitzar a la línia d'ordres, no són els noms d'amfitrió reals dels amfitrions remots.
  3. Les opcions de configuració com ara ssh_option1=value1, ssh_option2=value1 value2 s'apliquen a un amfitrió coincident i s'han de sagnar per a un format ben organitzat.
  4. Per a una opció com ara ssh_option2=valor1 valor2, primer es considera el valor valor1 i després valor2.
  5. La definició de la capçalera Host * (on * és un patró: un comodí que coincideix amb zero o més caràcters) coincidirà amb zero o més amfitrions.

Encara tenint en compte el format anterior, així és com ssh llegeix el fitxer de configuració. Si executeu una ordre ssh per accedir de manera remota a host1 així:

$ ssh host1

L'ordre ssh anterior farà les coses següents:

  1. coincideix amb l'àlies de l'amfitrió host1 al fitxer de configuració i aplica les opcions establertes a la capçalera de la definició, Amfitrió host1.
  2. Després passa a la següent secció d'amfitrió, Host host2 i troba que el nom proporcionat a la línia d'ordres no coincideix, de manera que no s'utilitza cap opció des d'aquí.
  3. Passa a l'última secció, Host *, que coincideix amb tots els amfitrions. Aquí, aplica totes les opcions d'aquesta secció a la connexió de l'amfitrió. Però no pot anul·lar cap valor de les opcions que ja s'utilitzaven a les seccions anteriors.
  4. El mateix s'aplica a host2.

Com utilitzar el fitxer de configuració SSH específic de l'usuari

Un cop hàgiu entès com funciona el fitxer de configuració del client ssh, podeu crear-lo de la següent manera. Recordeu utilitzar opcions i valors (àlies d'amfitrió, números de port, noms d'usuari, etc.) aplicables al vostre entorn de servidor.

Obriu el fitxer de configuració amb el vostre editor preferit:

$ vi ~/.ssh/config

I defineix les seccions necessàries:

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ó detallada de les opcions de configuració ssh anteriors.

  1. HostName: defineix el nom d'amfitrió real per iniciar la sessió, com a alternativa, podeu utilitzar adreces IP numèriques, també es permet (tant a la línia d'ordres com a les especificacions de HostName).
  2. Usuari: especifica l'usuari amb què iniciar la sessió.
  3. Port: estableix el número de port per connectar-se a l'amfitrió remot, el valor predeterminat és 22. Utilitzeu el número de port configurat al fitxer de configuració sshd de l'amfitrió remot.
  4. Protocol: aquesta opció defineix les versions del protocol que ssh hauria de suportar per ordre de preferència. Els valors habituals són 1 i 2, les diverses versions han d'estar separades per comes.
  5. IdentityFile: especifica un fitxer des del qual es llegeix la identitat d'autenticació DSA, Ed25519, RSA o ECDSA de l'usuari.
  6. ForwardX11: defineix si les connexions X11 es redirigiran automàticament al canal segur i al conjunt de DISPLAY. Té dos possibles valors \sí o \no.
  7. Compressió: s'utilitza per establir la compressió durant la connexió remota amb el valor \sí. El valor predeterminat és \no.
  8. ServerAliveInterval: estableix un interval de temps d'espera en segons després del qual si no s'ha rebut cap resposta (o dades) del servidor, ssh enviarà un missatge a través del canal xifrat per sol·licitar una resposta al servidor. El valor per defecte és 0, és a dir, no s'enviarà cap missatge al servidor, o 300 si s'ha definit l'opció BatchMode.
  9. ServerAliveCountMax: estableix el nombre de missatges actius del servidor que es poden enviar sense que ssh rebi cap resposta del servidor.
  10. LogLevel: defineix el nivell de verbositat que s'utilitza quan es registren missatges des de ssh. Els valors permesos inclouen: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 i DEBUG3. I el valor predeterminat és INFO.

La forma estàndard de connectar-se a qualsevol host Linux remot (CentOS 7, en el meu cas), definida a la secció dos del fitxer de configuració anterior, normalment escriurem l'ordre següent:

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

Tanmateix, amb l'ús del fitxer de configuració del client ssh, simplement podem escriure l'ordre següent:

$ ssh centos7 

Podeu trobar més opcions i exemples d'ús a la pàgina de manual de configuració del client ssh:

$man ssh_config

Això és tot de moment, en aquesta guia, us vam explicar com utilitzar un fitxer de configuració de client ssh específic de l'usuari (personalitzat) a Linux. Utilitzeu el formulari de comentaris següent per escriure'ns sobre aquest article.