GNU/Linux >> LINUX-Kenntnisse >  >> Linux

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

SSH (SSH-Client ) ist ein Programm für den Fernzugriff auf eine Maschine, es ermöglicht einem Benutzer, Befehle auf einem entfernten Host auszuführen. Dies ist eine der am meisten empfohlenen Methoden zum Anmelden bei einem Remote-Host, da sie darauf ausgelegt ist, eine sichere verschlüsselte Kommunikation zwischen zwei nicht vertrauenswürdigen Hosts über ein unsicheres Netzwerk bereitzustellen.

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 allgemeinen Optionen, die für Remote-Verbindungen über ssh verwendet werden.

SSH-Client-Konfigurationsdateien

Nachfolgend sind die Speicherorte der SSH-Client-Konfigurationsdateien aufgeführt:

  1. /etc/ssh/ssh_config – Dies ist die standardmäßige, systemweite Konfigurationsdatei. Es enthält Einstellungen, die für alle Benutzer des SSH-Client-Rechners gelten.
  2. ~/.ssh/config oder $HOME/.ssh/config – ist die benutzerspezifische/benutzerdefinierte Konfigurationsdatei. Es hat Konfigurationen, die für einen bestimmten Benutzer gelten. Es überschreibt daher die Standardeinstellungen in der systemweiten Konfigurationsdatei. Dies ist die Datei, die wir erstellen und verwenden werden.

Standardmäßig werden Benutzer in ssh mit Passwörtern authentifiziert, Sie können jedoch in 5 einfachen Schritten eine passwortlose ssh-Anmeldung mit ssh keygen einrichten.

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

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

Die chmod Der obige Befehl impliziert, dass nur der Benutzer Lese-, Schreib- und Ausführungsberechtigungen für das Verzeichnis haben kann, wie es die SSH-Einstellungen erfordern.

So erstellen Sie eine benutzerspezifische SSH-Konfigurationsdatei

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

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

Die obige Datei enthält Abschnitte, die durch Hostspezifikationen definiert sind, und ein Abschnitt wird nur auf Hosts angewendet, die mit einem der in der Spezifikation festgelegten Muster übereinstimmen.

Das herkömmliche Format von ~/.ssh/config ist wie folgt, und alle Leerzeilen sowie Zeilen, die mit ‘#’ beginnen gelten als Kommentare:

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 obigen Format:

  1. Host host1 – ist eine Header-Definition für host1 , hier beginnt eine Hostspezifikation und endet mit der nächsten Header-Definition, Host host2 Abschnitt erstellen.
  2. host1 , host2 sind einfach Host-Aliase, die auf der Befehlszeile verwendet werden, sie sind nicht die tatsächlichen Hostnamen der Remote-Hosts.
  3. Die Konfigurationsoptionen wie ssh_option1=value1 , ssh_option2=Wert1 Wert2 gelten für einen übereinstimmenden Host und sollten für eine gut organisierte Formatierung eingerückt sein.
  4. Für eine Option wie ssh_option2=value1 value2 , der Wert Wert1 wird zuerst berücksichtigt, dann value2 .
  5. Die Header-Definition Host * (wobei * ein Muster ist – ein Platzhalter, der mit null oder mehr Zeichen übereinstimmt) wird mit null oder mehr Hosts übereinstimmen.

Unter Berücksichtigung des obigen Formats liest ssh die Konfigurationsdatei auf diese Weise. Wenn Sie einen ssh-Befehl ausführen, um remote auf host1 zuzugreifen so:

$ ssh host1

Der obige ssh-Befehl macht die folgenden Dinge:

  1. passen Sie den Host-Alias ​​host1 an in der Konfigurationsdatei und wendet die Optionen an, die unter dem Definitionsheader Host host1 festgelegt sind .
  2. bewegt sich dann zum nächsten Hostabschnitt, Host host2 und stellt fest, dass der auf der Befehlszeile angegebene Name nicht übereinstimmt, daher werden hier keine Optionen verwendet.
  3. Es geht weiter zum letzten Abschnitt, Host * , die mit allen Hosts übereinstimmt. Hier werden alle Optionen in diesem Abschnitt auf die Hostverbindung angewendet. Aber es kann keine Werte von Optionen überschreiben, die bereits in den vorherigen Abschnitten verwendet wurden.
  4. Das Gleiche gilt für host2 .

So verwenden Sie eine benutzerspezifische 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 gelten.

Öffnen Sie die Konfigurationsdatei mit Ihrem bevorzugten Editor:

$ vi ~/.ssh/config

Und definieren Sie die notwendigen Abschnitte:

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

Eine detaillierte Erklärung der obigen ssh-Konfigurationsoptionen.

  1. Hostname – Definiert den echten Hostnamen zum Einloggen, alternativ können Sie eine numerische IP-Adresse verwenden, es ist auch erlaubt (sowohl auf der Kommandozeile als auch in HostName Spezifikationen).
  2. Benutzer – gibt den Benutzer an, als der man sich anmeldet.
  3. Port – legt die Portnummer für die Verbindung zum Remote-Host fest, der Standardwert ist 22 . Verwenden Sie die in der sshd-Konfigurationsdatei des Remote-Hosts konfigurierte Portnummer.
  4. Protokoll – Diese Option definiert die Protokollversionen, die ssh in bevorzugter Reihenfolge unterstützen soll. Die üblichen Werte sind ‘1‘ und ‘2’ , müssen mehrere Versionen durch Kommas getrennt werden.
  5. Identitätsdatei – gibt eine Datei an, aus der die DSA-, Ed25519-, RSA- oder ECDSA-Authentifizierungsidentität des Benutzers gelesen wird.
  6. ForwardX11 – legt fest, ob X11-Verbindungen automatisch über den sicheren Kanal umgeleitet und DISPLAY gesetzt werden. Es hat zwei mögliche Werte „Ja“ oder „nein“ .
  7. Komprimierung – Es wird verwendet, um die Komprimierung während der Remote-Verbindung mit dem „Ja“ einzustellen Wert. Der Standardwert ist „nein“ .
  8. ServerAliveInterval – legt ein Timeout-Intervall in Sekunden fest, nach dem, wenn keine Antwort (oder Daten) vom Server empfangen wurden, ssh eine Nachricht über den verschlüsselten Kanal sendet, um eine Antwort vom Server anzufordern. Der Standardwert ist 0 , was bedeutet, dass keine Nachrichten an den Server gesendet werden, oder 300 wenn die Option BatchMode definiert wurde.
  9. ServerAliveCountMax – legt die Anzahl der Server-Alive-Meldungen fest, die gesendet werden dürfen, ohne dass ssh eine Antwort vom Server erhält.
  10. LogLevel – definiert die Ausführlichkeitsstufe, die beim Protokollieren von Nachrichten von ssh verwendet wird. Zulässige Werte sind:QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 und DEBUG3. Und der Standardwert ist INFO.

Die Standardmethode zum Herstellen einer Verbindung zu einem beliebigen Remote-Linux-Host (CentOS 7 – in meinem Fall), die in Abschnitt zwei der obigen Konfigurationsdatei definiert ist, würden wir normalerweise den folgenden Befehl eingeben:

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

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

$ ssh centos7 

Weitere Optionen und Verwendungsbeispiele finden Sie in der Manpage für die SSH-Client-Konfiguration:

$man ssh_config

Das war es fürs Erste, in diesem Handbuch haben wir Ihnen erklärt, wie Sie eine benutzerspezifische (benutzerdefinierte) SSH-Client-Konfigurationsdatei unter Linux verwenden. Verwenden Sie das unten stehende Feedback-Formular, um uns bezüglich dieses Artikels zu antworten.


Linux
  1. So konfigurieren Sie den Remote-MySQL-Zugriff in cPanel

  2. So finden Sie aktive SSH-Verbindungen unter Linux

  3. Remote-SSH-Zugriff zulassen?

  4. So verbinden Sie einen Remote-Host mit dem ssh-Befehl

  5. SSH:In einem privaten Netzwerk, wie Sie vom Quellcomputer auf den Remote-Computer zugreifen, ohne den öffentlichen SSH-Schlüssel zu verwenden

So führen Sie SSH in ein bestimmtes Verzeichnis unter Linux aus

So konfigurieren Sie die X11-Weiterleitung mit SSH unter Linux

So konfigurieren Sie ein benutzerdefiniertes SSH-Banner

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server herzustellen

Gewusst wie:FreeBSD-Fernverwaltung

So konfigurieren Sie Timeout auf SSH-Client-Putty