So konfigurieren Sie benutzerdefinierte SSH -Verbindungen, um den Remote -Zugriff zu vereinfachen

So konfigurieren Sie benutzerdefinierte SSH -Verbindungen, um den Remote -Zugriff zu vereinfachen

Ssh (SSH -Kunde) ist ein Programm zum remote -Zugriff auf einen Computer. Ein Benutzer kann Befehle auf einem Remote -Host ausführen. Es ist eine der am häufigsten empfohlenen Methoden zum Anmelden bei einem Remote -Host, da es so konzipiert ist.

Ssh Verwendet sowohl eine systemweite als auch eine benutzerspezifische (benutzerdefinierte) Konfigurationsdatei. In diesem Tutorial erklären wir, wie Sie eine benutzerdefinierte SSH -Konfigurationsdatei erstellen und bestimmte Optionen verwenden, um eine Verbindung zu Remote -Hosts herzustellen.

Anforderungen:

  1. Sie müssen den OpenSSH -Client auf Ihrem Linux -Desktop installiert haben.
  2. Verstehen Sie die gängigen Optionen, die für Remote -Verbindungen über SSH verwendet werden.

SSH -Client -Konfigurationsdateien

Im Folgenden finden Sie die Stellen der SSH -Client -Konfigurationsdateien:

  1. /etc/ssh/ssh_config - Dies ist die Standard-systemweite Konfigurationsdatei. Es enthält Einstellungen, die für alle Benutzer des SSH -Client -Computers gelten.
  2. ~/.ssh/config oder $ Home/.ssh/config - ist die benutzerspezifische/benutzerdefinierte Konfigurationsdatei. Es verfügt über Konfigurationen, die für einen bestimmten Benutzer gelten. Daher wird die Standardeinstellungen in der systemweiten Konfigurationsdatei überschrieben. Dies ist die Datei, die wir erstellen und verwenden werden.

Standardmäßig werden Benutzer in SSH mit Kennwörtern authentifiziert. Sie können jedoch die SSH -Kennwortlin mit SSH Keygen in 5 einfachen Schritten einrichten.

Notiz: Falls das Verzeichnis ~/.ssh Erstellt es nicht auf Ihrem Desktop -System, erstellen Sie es mit den folgenden Berechtigungen.

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

Der Chmod Der obige Befehl impliziert, dass nur der Benutzer Berechtigungen im Verzeichnis gelesen, schreiben und ausführen kann, wie dies von SSH -Einstellungen erforderlich ist.

So erstellen Sie benutzerspezifische SSH -Konfigurationsdatei

Diese Datei wird normalerweise nicht standardmäßig nicht erstellt, sodass Sie sie mit den Lese-/Schreibberechtigungen nur für den Benutzer erstellen müssen.

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

Die obige Datei enthält Abschnitte, die nach den Spezifikationen der Hosts definiert sind, und ein Abschnitt wird nur auf Hosts angewendet, die einem der in der Spezifikation festgelegten Muster entsprechen.

Das konventionelle Format von ~/.ssh/config ist wie folgt und alle leeren Linien sowie Linien beginnen mit '#' werden als Kommentare angesehen:

Host Host1 ssh_option1 = value1 ssh_option2 = value1 value2 SSH_OPTION3 = value1 host2 ssh_option1 = value1 

Aus dem obigen Format:

  1. Host Host1 - ist eine Header -Definition für Host1, Hier beginnt eine Host -Spezifikation und endet mit der nächsten Header -Definition, Host Host2 einen Abschnitt machen.
  2. Host1, Host2 sind einfach Host -Aliase für die Befehlszeile, sie sind nicht die tatsächlichen Hostnamen der Remote -Hosts.
  3. Die Konfigurationsoptionen wie z ssh_option1 = value1, ssh_option2 = value1 value2 Bewerben Sie sich bei einem übereinstimmenden Host und sollten für gut organisierte Formatierung eingerichtet werden.
  4. Für eine Option wie z ssh_option2 = value1 value2, der Wert Wert1 wird dann zuerst betrachtet Wert2.
  5. Die Header -Definition Gastgeber * (Wo * ist ein Muster - Wildcard, das mit Null oder mehr Zeichen entspricht) entspricht Null oder mehr Hosts.

In Anbetracht des obigen Formats wird SHSH die Konfigurationsdatei so liest. Wenn Sie einen SSH -Befehl ausführen, um aus der Ferne zuzugreifen Host1 Like SO:

$ SSH HOST1 

Der obige SSH -Befehl wird die folgenden Dinge erledigen:

  1. Passen Sie den Host -Alias ​​an Host1 in der Konfigurationsdatei und wendet die Optionen an, die im Definitionsheader festgelegt sind, Host Host1.
  2. Dann wechselt zum nächsten Hostabschnitt, Host Host2 und stellt fest, dass der in der Befehlszeile angegebene Name nicht übereinstimmt, sodass von hier keine Optionen verwendet werden.
  3. Es geht zum letzten Abschnitt fort, Gastgeber *, Das passt zu allen Hosts. Hier wendet es alle Optionen in diesem Abschnitt auf die Hostverbindung an. Es kann jedoch keine Werte von Optionen überschreiben, die bereits in den vorherigen Abschnitt (en) verwendet werden, wenn sie bereits verwendet werden.
  4. Das gleiche gilt für Host2.

Verwendung der benutzerspezifischen SSH -Konfigurationsdatei

Sobald Sie verstanden haben, wie die SSH -Client -Konfigurationsdatei funktioniert, können Sie sie wie folgt erstellen. Denken Sie daran, Optionen und Werte (Host -Aliase, Portnummern, Benutzernamen usw.) zu verwenden, die für Ihre Serverumgebung anwendbar sind.

Öffnen Sie die Konfigurationsdatei mit Ihrem bevorzugten Editor:

$ vi ~//.ssh/config 

Und definieren Sie die erforderlichen Abschnitte:

Gastgeber Fedora25 Hostname 192.168.56.15 Port 22 vorwärtsx11 Kein Host CentOS7 Hostname 192.168.56.10 Port 22 vorwärtsx11 Kein Host Ubuntu Hostname 192.168.56.5 Port 2222 vorwärtsx11 Ja Host * Benutzer Tecmint IdentityFile ~/.SSH/ID_RSA -Protokoll 2 Komprimierung Ja ServeraliveInterval 60 serveraliveCountMax 20 Loglevel -Info 

Eine detaillierte Erläuterung der oben genannten SSH -Konfigurationsoptionen.

  1. Hostname - Definiert den tatsächlichen Hostnamen, um sich alternativ ein Anmeldung anzumelden Hostname Spezifikationen).
  2. Benutzer - Gibt den Benutzer an, um sich anzumelden als.
  3. Hafen - Legt die Portnummer fest, um den Remote -Host herzustellen. Der Standardwert ist 22. Verwenden Sie die Portnummer, die in der SSHD -Konfigurationsdatei des Remote -Hosts konfiguriert ist.
  4. Protokoll - Diese Option definiert die Protokollversion, die SSH in der Reihenfolge der Präferenz unterstützen sollte. Die üblichen Werte sind '1' Und "2", Mehrere Versionen müssen von Kommas getrennt sein.
  5. Identitätsdatei - Gibt eine Datei an, aus der die DSA des Benutzers ED25519, RSA oder ECDSA -Authentifizierungsidentität gelesen wird.
  6. Vorwärts111 - Definiert, ob X11 -Verbindungen automatisch über den sicheren Kanal und Anzeige -Set umgeleitet werden. Es hat zwei mögliche Werte "Ja" oder "NEIN".
  7. Kompression - Es wird verwendet, um die Komprimierung während der Fernverbindung mit dem festzulegen "Ja" Wert. Der Standard ist "NEIN".
  8. ServeraliveInterval - Legt ein Zeitübergangsintervall in Sekunden fest, wonach SSH eine Nachricht über den verschlüsselten Kanal sendet, um eine Antwort vom Server anzufordern. Der Standardwert ist 0, bedeutet, dass keine Nachrichten an den Server gesendet werden, oder 300 Wenn die Option BatchMode definiert wurde.
  9. ServeraliveCountMax - Legt die Anzahl der Server lebendigen Nachrichten fest, die nicht gesendet werden können, ohne dass SSH eine Antwort vom Server empfängt.
  10. Loglevel - Definiert die Ausführungsstufe, die bei der Protokollierung von Nachrichten von SSH verwendet wird. Die zulässigen Werte umfassen: Quiet, Fatal, Irrtum, Info, VERBOSE, DEBUG, DEBUG1, DEBUG2 und DEBUG3. Und der Standard sind Info.

Die Standardmethode zur Verbindung zu einem Remote -Linux -Host (CentOS 7 - in meinem Fall), der in Abschnitt 2 der obigen Konfigurationsdatei definiert ist, würden wir normalerweise den folgenden Befehl eingeben:

$ ssh -i ~/.SSH/ID_RSA -P 22 [E -Mail geschützt] 

Mit der Verwendung der SSH -Client -Konfigurationsdatei können wir jedoch den folgenden Befehl einfach eingeben:

$ ssh Centos7 

Weitere Optionen und Verwendungsbeispiele finden Sie auf der Seite SSH Client Config Man:

$ MAN SSH_CONfig 

In diesem Handbuch haben wir Ihnen vorerst erklärt, wie Sie eine benutzerspezifische (benutzerdefinierte) SSH-Client-Konfigurationsdatei unter Linux verwenden. Verwenden Sie das Feedback -Formular unten, um uns über diesen Artikel zurückzuschreiben.