Wéi konfiguréieren Custom SSH Connections fir Remote Access ze vereinfachen


SSH (SSH Client) ass e Programm fir Remote Zougang zu enger Maschinn, et erméiglecht e Benotzer Kommandoen op engem Fernhost auszeféieren. Et ass eng vun de meescht empfohlene Methoden fir Iech op e Fernhost ze aloggen, well et ass entwéckelt fir sécher verschlësselte Kommunikatiounen tëscht zwee onvertrauen Hosten iwwer en onséchert Netzwierk ze bidden.

SSH benotzt souwuel e System-breet wéi och eng Benotzerspezifesch (personaliséiert) Konfiguratiounsdatei. An dësem Tutorial wäerte mir erkläre wéi Dir eng personaliséiert ssh Konfiguratiounsdatei erstellt a verschidde Méiglechkeeten benotzt fir mat Remote Hosten ze verbannen.

  1. Dir musst den OpenSSH Client op Ärem Linux Desktop installéiert hunn.
  2. Verstinn déi allgemeng Optiounen, déi fir Fernverbindungen iwwer ssh benotzt ginn.

Drënner sinn d'Plaze vun den ssh Client Konfiguratiounsdateien:

  1. /etc/ssh/ssh_config - dëst ass d'Standard, systemwäit Konfiguratiounsdatei. Et enthält Astellungen déi fir all Benotzer vun der ssh Client Maschinn gëllen.
  2. ~/.ssh/config oder $HOME/.ssh/config - ass déi Benotzerspezifesch/personaliséiert Konfiguratiounsdatei. Et huet Konfiguratiounen déi op e spezifesche Benotzer gëllen. Et iwwerschreift dofir Standardastellungen an der systemwäit Konfiguratiounsdatei. Dëst ass de Fichier dee mir erstellen a benotzen.

Par défaut ginn d'Benotzer an ssh mat Passwierder authentifizéiert, awer Dir kënnt ssh Passwuertlos Login mat ssh Keygen a 5 einfache Schrëtt astellen.

Bemierkung: Am Fall wou de Verzeechnes ~/.ssh net op Ärem Desktop-System existéiert, erstellt et mat de folgende Permissiounen.

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

De chmod Kommando uewen implizéiert datt nëmmen de Benotzer Permissiounen am Verzeechnes liesen, schreiwen an ausféieren kann wéi néideg vun ssh Astellungen.

Wéi Dir Benotzerspezifesch SSH Konfiguratiounsdatei erstellt

Dës Datei gëtt normalerweis net als Standard erstallt, also musst Dir se mat de Lies-/Schreifrechter fir nëmmen de Benotzer erstellen.

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

Déi uewe genannte Datei enthält Sektiounen definéiert duerch Hostspezifikatiounen, an eng Sektioun gëtt nëmme fir Hosten applizéiert déi mat engem vun de Mustere passen an der Spezifizéierung.

Dat konventionellt Format vun ~/.ssh/config ass wéi follegt, an all eidel Zeilen souwéi Zeilen, déi mat '#' ufänken, ginn als Kommentar ugesinn:

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

Aus dem Format uewendriwwer:

  1. Hosthost1 - ass eng Header Definitioun fir Host1, dat ass wou eng Hostspezifikatioun ufänkt an et endet mat der nächster Header Definitioun, Host Host2 mécht eng Sektioun.
  2. Host1, Host2 sinn einfach Host Aliasen fir op der Kommandozeil ze benotzen, si sinn net déi aktuell Hostnumm vun de Fernhosten.
  3. D'Konfiguratiounsoptioune wéi ssh_option1=value1, ssh_option2=value1 value2 gëllen fir e passende Host a solle fir eng gutt organiséiert Formatéierung agedréckt ginn.
  4. Fir eng Optioun wéi ssh_option2=value1 value2, gëtt de Wäert value1 als éischt ugesinn, dann value2.
  5. D'Header Definitioun Host * (wou * e Muster ass - Wildcard déi mat Null oder méi Zeechen entsprécht) wäert mat Null oder méi Hosten passen.

Bedenkt ëmmer nach de Format hei uewen, dëst ass wéi ssh d'Configuratiounsdatei liest. Wann Dir e ssh Kommando ausféiert fir Remote Zougang zu Host1 wéi esou:

$ ssh host1

Den uewe genannte ssh Kommando mécht déi folgend Saachen:

  1. passt dem Hostalias Host1 an der Konfiguratiounsdatei an applizéiert d'Optiounen, déi ënner dem Definitiounsheader, Hosthost1 gesat goufen.
  2. bewegt dann op déi nächst Hostsektioun, Hosthost2 a fënnt datt den Numm op der Kommandozeil net entsprécht, sou datt keng Optioune vun hei benotzt ginn.
  3. Et geet weider op déi lescht Sektioun, Host *, deen all Hosten entsprécht. Hei gëlt et all Optiounen an dëser Sektioun op d'Hostverbindung. Awer et kann keng Wäerter vun Optiounen iwwerschreiden, déi schonn an der viregter Sektioun(en) benotzt goufen.
  4. Dat selwecht gëllt fir Host2.

Wéi benotzt Dir Benotzerspezifesch SSH Konfiguratiounsdatei

Wann Dir verstanen hutt wéi d'ssh Client Configuratiounsdatei funktionnéiert, kënnt Dir se erstellen wéi follegt. Denkt drun Optiounen a Wäerter ze benotzen (Host Aliasen, Portnummeren, Benotzernimm a sou weider) applicabel fir Äert Serverëmfeld.

Öffnen d'Configuratiounsdatei mat Ärem Liiblingseditor:

$ vi ~/.ssh/config

An definéiert déi néideg Sektiounen:

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

Eng detailléiert Erklärung vun den uewe genannte ssh Konfiguratiounsoptiounen.

  1. HostName - definéiert de richtege Hostnumm fir Iech anzeloggen, alternativ kënnt Dir eng numeresch IP Adresse benotzen, et ass och erlaabt (souwuel op der Kommandozeil wéi an de HostName Spezifikatioune).
  2. Benotzer - spezifizéiert de Benotzer fir aloggen als.
  3. Port - setzt d'Portnummer fir de Fernhost ze verbannen, de Standard ass 22. Benotzt d'Portnummer, déi an der sshd Configuratiounsdatei vum Fernhost konfiguréiert ass.
  4. Protokoll - dës Optioun definéiert d'Protokollversioune ssh soll an der Preferenzuerdnung ënnerstëtzen. Déi üblech Wäerter sinn '1' an '2', verschidde Versioune musse komma-getrennt sinn.
  5. IdentityFile - spezifizéiert e Fichier aus deem dem Benotzer seng DSA, Ed25519, RSA oder ECDSA Authentifikatiounsidentitéit gelies gëtt.
  6. ForwardX11 - definéiert ob X11 Verbindungen automatesch iwwer de séchere Kanal an DISPLAY-Set ëmgeleet ginn. Et huet zwee méiglech Wäerter \jo oder \nee.
  7. Kompressioun - et gëtt benotzt fir d'Kompressioun während der Fernverbindung mat dem \jo Wäert ze setzen. De Standard ass \nee.
  8. ServerAliveInterval - setzt en Timeout-Intervall a Sekonne fest, no deem wann keng Äntwert (oder Daten) vum Server kritt goufen, ssh e Message iwwer de verschlësselte Kanal schéckt fir eng Äntwert vum Server ze froen. De Standardwäert ass 0, dat heescht datt keng Messagen un de Server geschéckt ginn, oder 300 wann d'BatchMode Optioun definéiert gouf.
  9. ServerAliveCountMax - setzt d'Zuel vun de Server lieweg Messagen déi geschéckt kënne ginn ouni datt ssh eng Äntwert vum Server kritt.
  10. LogLevel - definéiert de Verbositéitsniveau dee benotzt gëtt wann Dir Messagen aus ssh protokolléiert. Déi zulässlech Wäerter enthalen: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, an DEBUG3. An de Standard ass INFO.

De Standard Wee fir mat all Remote Linux Host ze verbannen (CentOS 7 - a mengem Fall), definéiert an der zweeter Sektioun vun der Configuratiounsdatei hei uewen, gi mir normalerweis de Kommando hei drënner:

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

Wéi och ëmmer, mat der Benotzung vun der ssh Client Konfiguratiounsdatei, kënne mir einfach de folgende Kommando tippen:

$ ssh centos7 

Dir kënnt méi Optiounen a Benotzungsbeispiller an der ssh Client Config Man Säit fannen:

$man ssh_config

Dat ass et fir de Moment, an dësem Guide hu mir Iech erkläert wéi Dir eng Benotzerspezifesch (custom) ssh Client Configuratiounsdatei an Linux benotzt. Benotzt de Feedbackformular hei ënnen fir eis iwwer dësen Artikel ze schreiwen.