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.
- Dir musst den OpenSSH Client op Ärem Linux Desktop installéiert hunn.
- Verstinn déi allgemeng Optiounen, déi fir Fernverbindungen iwwer ssh benotzt ginn.
Drënner sinn d'Plaze vun den ssh Client Konfiguratiounsdateien:
/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.~/.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:
- 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.
- Host1, Host2 sinn einfach Host Aliasen fir op der Kommandozeil ze benotzen, si sinn net déi aktuell Hostnumm vun de Fernhosten.
- 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.
- Fir eng Optioun wéi ssh_option2=value1 value2, gëtt de Wäert value1 als éischt ugesinn, dann value2.
- 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:
- passt dem Hostalias Host1 an der Konfiguratiounsdatei an applizéiert d'Optiounen, déi ënner dem Definitiounsheader, Hosthost1 gesat goufen.
- 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.
- 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.
- 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.
- 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).
- Benotzer - spezifizéiert de Benotzer fir aloggen als.
- 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.
- 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.
- IdentityFile - spezifizéiert e Fichier aus deem dem Benotzer seng DSA, Ed25519, RSA oder ECDSA Authentifikatiounsidentitéit gelies gëtt.
- 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.
- Kompressioun - et gëtt benotzt fir d'Kompressioun während der Fernverbindung mat dem \jo Wäert ze setzen. De Standard ass \nee.
- 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.
- ServerAliveCountMax - setzt d'Zuel vun de Server lieweg Messagen déi geschéckt kënne ginn ouni datt ssh eng Äntwert vum Server kritt.
- 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.