Grundlegende SSH -Befehlsnutzung und -konfiguration unter Linux

Grundlegende SSH -Befehlsnutzung und -konfiguration unter Linux

Brief: In diesem Leitfaden werden wir die gemeinsamen Anwendungsfälle von SSH diskutieren. Wir werden auch häufig verwendete SSH-Konfigurationen diskutieren, die im täglichen Leben verwendet werden können, um Ihre Produktivität zu steigern.

Sichere Schale (Ssh) ist ein weit verbreitetes Netzwerkprotokoll, das es uns ermöglicht, auf sichere Weise mit Remote -Hosts zu interagieren. Es bietet Sicherheit, indem alle Kommunikation zwischen ihnen verschlüsselt werden.

So verwenden Sie den SSH -Befehl unter Linux

In diesem Abschnitt werden wir einige der beliebten Anwendungsfälle dessen diskutieren Ssh Protokoll.

Stellen Sie eine Verbindung zum Remote -Linux -Host an

Es gibt verschiedene Möglichkeiten, mit Remote -Linux -Hosts mit Protokollen wie zu interagieren, z. B Telnet, ftp, netcat usw. Diese sind jedoch aufgrund des Fehlens von Verschlüsselung nicht sicher. Wir können das SSH -Protokoll verwenden, um eine sichere Kommunikation zwischen den Hosts zu ermöglichen.

Wir müssen eine verwenden Ssh Client, um mit dem Remote -Host zu interagieren. Für Linux stehen viele GUI- und CLI-basierte Kunden zur Verfügung. In diesem Leitfaden verwenden wir jedoch ein Befehlszeilen -Dienstprogramm namens namens ssh. Standardmäßig die ssh Das Dienstprogramm ist bei den meisten Linux -Verteilungen verfügbar.

Die Syntax des SSH -Befehls lautet wie folgt:

$ ssh [Optionen] [Befehle] [Args] 

Hier die quadratischen Klammern ([]) stellen die optionalen Argumente dar, während Winkelklammern () die obligatorischen Argumente darstellen.

Stellen wir eine Verbindung zum Remote -Host mit dem her ssh Klient:

$ ssh -l root 192.168.19.130 

In diesem Beispiel haben wir den Login -Namen mit dem angegeben -l Option und das Ziel ist 192.168.19.130. Die SSH -Verbindung wird nach Eingabe des richtigen Passworts festgelegt. Jetzt können wir die Befehle auf dem Remote -Host genau wie das lokale System ausführen.

# Hostname 

Um die Sitzung zu beenden, können wir die verwenden Ausfahrt Befehl oder Strg+d Schlüsselkombination.

SSH verbinden sich mit Remote Linux -Host

Es ist wichtig zu beachten, dass wir uns für jede neue Sitzung mit dem Remote -Host authentifizieren müssen. Um jedes Mal Passwörter zu vermeiden, können wir eine SSH -Passwort -Login einrichten.

Führen Sie Befehle auf dem Remote -Host aus

Im vorherigen Abschnitt haben wir gesehen. Manchmal müssen wir nur ein oder zwei Befehle auf dem Remote -Host ausführen. In solchen Fällen können wir diese Befehle ausführen, ohne eine langfristige Sitzung zu erstellen.

Lassen Sie uns den Befehl hostname auf dem Remote -Host ausführen:

$ ssh -l root 192.168.19.130 Hostname 

In ähnlicher Weise können wir mehrere Befehle auf einem Remote -Linux -Computer ausführen:

$ ssh -l root 192.168.19.130 'Hostname; PWD ' 
SSH -Befehle in Remote Linux ausführen

Es ist wichtig zu beachten, dass die Befehle in die Zitate eingeschlossen und vom Halbkolon getrennt sein müssen (;) Charakter. Wenn Sie Befehle auf mehreren Remote -Linux -Hosts ausführen möchten, lesen Sie unseren Artikel - PSSH - Befehle auf mehreren Remote -Linux -Hosts ausführen.

Führen Sie das Skript auf dem Remote -Host aus

Ähnlich wie bei den Befehlen können wir auch ein lokales Skript auf dem Remote -Host ausführen. Lassen Sie uns dies mit einem Beispiel verstehen.

Erstellen Sie zunächst ein einfaches Shell -Skript auf einem lokalen Computer mit ausführbaren Berechtigungen:

$ cat script.SH Hostname PWD 

Lassen Sie es uns nun auf dem Remote -Host ausführen:

$ ssh [E -Mail geschützt] 'Bash -S' ' < ./script.sh 

In diesem Beispiel haben wir die verwendet -S Option der Bash, um das Skript aus der Standardeingabe zu lesen.

SSH -Skript in Remote Linux ausführen

Kopieren Sie Dateien zwischen den Hosts

Wir arbeiten sehr oft mit den Dateien und Verzeichnissen zusammen. Ein allgemeiner Betrieb, der Benutzer durchführen, ist das Kopieren von Verzeichnissen und Dateien. Genau wie lokale Maschinen können wir Dateien und Verzeichnisse zwischen den Remote -Hosts mit dem SCP -Befehl kopieren, der die Dateien mithilfe des SSH -Protokolls sicher kopiert.

Kopieren wir die Skript.Sch Datei an der /tmp Verzeichnis des Remote -Hosts:

$ scp Skript.SH [E -Mail geschützt]:/tmp 

Stellen Sie nun sicher, dass die Datei kopiert wurde:

$ ssh [E -Mail geschützt] 'LS /TMP /Skript.Sch' 
SSH -Dateien auf Remote Linux kopieren

In ähnlicher Weise können wir den Befehl SCP verwenden, um die Verzeichnisse zu kopieren. Wir müssen jedoch die verwenden -R Option mit dem Befehl.

Aktivieren Sie die Komprimierung für SSH

Ssh Unterstützt die Datenkomprimierung mit der gzip Komprimierungsalgorithmus, der alle möglichen Datenströme wie Stdin, Stdout, Stderr usw. komprimiert. Diese Option ist sehr praktisch, während langsame Netzwerkverbindungen verwendet werden.

Wir können die Komprimierung auf SSH mit dem aktivieren -C Möglichkeit:

$ ssh -c -l root 192.168.19.130 'Hostname' 
SSH ermöglichen die Komprimierung

Aktivieren Sie den ausführlichen Modus für SSH

Linux-Benutzer müssen häufig SSH-Sitzungen debuggen, um verschiedene SSH-Verbindungs- und Konfigurationsprobleme zu untersuchen. In solchen Fällen können wir den ausführlichen Modus aktivieren, der die Debug -Protokolle der aktuellen Sitzung druckt.

Lassen Sie uns den ausführlichen Modus mit dem aktivieren -v Möglichkeit:

$ ssh -v -l root 192.168.19.130 Hostname 

Darüber hinaus können wir das Ausführungsniveau erhöhen, indem wir das Vielfache verwenden -v Optionen.

  • -v - Legt die Ausführungsstufe auf 1 fest und enthält Details zu den kundenseitigen Aktivitäten.
  • -VV - Legt die Ausführungsstufe auf 2 fest und enthält Details über die Client- und Server-Seite-Aktivitäten.
  • -VVV - Legt die Ausführungsstufe auf 3 fest und liefert detailliertere Informationen über die Client- und Server-Seite-Aktivitäten.

Das von SSH unterstützte maximale Ausführungsniveau beträgt 3. Lassen Sie uns dies in Aktion sehen:

$ ssh -vvv -l root 192.168.19.130 Hostname 
SSH Enbale ausführlicher Modus

Im obigen Beispiel, Debug1 repräsentiert die Debug -Nachricht, die durch die Ausführungsstufe 1 aktiviert ist. Ähnlich, Debug2 Und Debug3 Stellen Sie die Debug -Nachrichten dar, die durch die Ausführungsstufen 2 bzw. 3 aktiviert sind.

Escape -Sequenzen in SSH

Wir können Fluchtsequenzen mit dem verwenden Ssh Um die Client -Terminalsitzungen zu verwalten,. Lassen Sie uns häufig verwendete Escape -Sequenzen mit den entsprechenden Anwendungsfällen diskutieren.

SSH -Sitzung suspendieren

Manchmal müssen wir einige Aktivitäten auf der lokalen Maschine ausführen, ohne die aktuelle SSH -Sitzung zu beenden. In einem solchen Szenario können wir die aktuelle Sitzung mit der aktuellen Sitzung suspendieren ~ + Strg + z Schlüsselsequenz.

Melden Sie sich zunächst beim Remote -Host an und führen Sie die aus Hostname Befehl:

$ ssh -l root 192.168.19.130 # Hostname 

Als nächstes die aktuelle Sitzung Erstes Tilde auszusetzen (~) Charakter und drücken Sie dann die Strg + z Schlüssel. Es ist wichtig zu beachten, dass die Tilde (~) Das Zeichen wird auf dem Stdout erst angezeigt, bis wir drücken Strg + z.

Überprüfen wir nun, dass die Sitzung suspendiert wurde:

$ Jobs 

Hier können wir sehen, dass die aktuelle SSH -Sitzung im Hintergrund ausgeführt wird.

Nehmen wir die Sitzung mit dem erneut wieder auf fg Befehl und führen die aus Hostname Befehl:

$ fg %1 
Führen Sie die SSH -Sitzung im Hintergrund aus
Beenden Sie die gefrorene SSH -Sitzung

Ich bin sicher. Hier können wir die Sitzung nicht mit dem abbrechen Ausfahrt Befehl. Wir können es jedoch mit dem beenden "~ + ." Schlüsselsequenz.

Melden Sie sich zunächst beim Remote -Host an:

$ ssh -l root 192.168.19.130 

Verwenden Sie nun die "~ + ." Schlüsselkombination zur Beendigung der aktuellen Sitzung.

SSH -Sitzung beenden

In diesem Beispiel können wir das sehen Ssh Zeigt die Nachricht an - Verbindung zu 192.168.19.130 geschlossen.

List unterstützte Fluchtsequenz

Eine interessante Sache ist, dass es eine Fluchtsequenz gibt, um alle unterstützten Fluchtsequenzen aufzulisten. Wir können die verwenden „~ + ?” Escape -Sequenz, um die unterstützten Escape -Sequenzen aufzulisten:

Unterstützte Fluchtsequenzen

Hier müssen wir die Eingabetaste drücken, um aus dem Help -Menü herauszukommen.

So konfigurieren Sie SSH unter Linux

In diesem Abschnitt werden wir die serverseitige Konfiguration besprechen, um den SSH-Server zu verhärten. SSH Server speichert alle Konfiguration in /etc/ssh/sshd_config Datei. Es ist wichtig zu beachten, dass der Root -Benutzerzugriff erforderlich ist, um die SSH -Konfiguration zu aktualisieren.

SSH -Banner anzeigen

Als Best Practice sollten wir das Banner immer anzeigen, bevor wir eine SSH -Verbindung herstellen. In einigen Fällen wird nicht autorisierte Benutzer davon abgehalten, auf Remote -Hosts zuzugreifen. Lassen Sie uns sehen, wie diese Einstellung Schritt für Schritt aktiviert werden kann.

Erstellen Sie zunächst eine Textdatei auf einem Remote -Server mit einer Warnmeldung:

# vi /etc /Banner.txt 

Fügen Sie als nächstes die folgende Bannernachricht hinzu:

******************************************************** ******************* Warnung !!! Sie versuchen, sich bei Techmint anzumelden.Coms Server. Alle Aktivitäten auf diesem Server werden überwacht. Beenden Sie die Sitzung sofort, wenn Sie kein autorisierter Benutzer sind. ******************************************************** ******************* 

Als nächstes öffnen Sie die /etc/ssh/sshd_config Datei und Geben Sie die Datei mit der an Banner Richtlinie:

Banner /etc /Banner.txt 

Starten Sie nun die neu neu sshd Dienst und kündigen Sie die Sitzung mit der Ausfahrt Befehl:

# Systemctl Neustart SSHD # Exit 

Überprüfen Sie schließlich das Banner, indem Sie sich beim Remote -Host anmelden:

$ ssh -l root 192.168.19.130 
SSH -Banner anzeigen

Hier können wir, dass der Server das SSH -Banner richtig anzeigt.

Deaktivieren Sie die SSH -Root -Anmeldung

Bisher haben wir den Stammbenutzer verwendet, um auf den Remote -Host zuzugreifen. Dies ist jedoch gegen das Prinzip der geringsten Privilegien. In einer Produktionsumgebung ist der Root -Benutzerzugriff immer darauf beschränkt, die Sicherheit zu verbessern.

Wir können die verwenden Erlaubnisrootlogin Richtlinie zum Deaktivieren der Stammbenutzer -Anmeldung.

Öffnen Sie zuerst die /etc/ssh/sshd_config Datei und verwenden Sie die Option NEIN mit dem Erlaubnisrootlogin Richtlinie:

Erläuterung Nr 

Starten Sie nun die neu neu sshd Dienst und kündigen Sie die Sitzung mit der Ausfahrt Befehl:

# Systemctl Neustart SSHD # Exit 

Überprüfen Sie dies schließlich, indem Sie eine neue SSH -Sitzung erstellen:

$ ssh -l root 192.168.19.130 
Deaktivieren Sie die SSH -Root -Anmeldung

Hier können wir feststellen, dass wir uns nicht mit dem Stammbenutzer beim Remote -Host anmelden können. Um die Anmeldung von Rootbenutzern zu ermöglichen, können wir die Option verwenden Ja mit der gleichen Richtlinie.

Ändern Sie den Standard -SSH -Port

Standardmäßig, Ssh verwendet TCP Port 22. Wir können jedoch SSH so konfigurieren, dass sie auf einem anderen Port i ausgeführt werden.e. 8088.

Öffnen Sie zuerst die /etc/ssh/sshd_config Datei und verwenden Sie die 8088 Wert mit dem Hafen Richtlinie:

Port 8088 

Starten Sie als nächstes den SSHD -Dienst neu und beenden Sie die Sitzung:

# Systemctl Neustart SSHD # Exit 

Melden wir uns nun beim Remote -Host an:

$ ssh -p 8088 -l root 192.168.19.130 
SSH -Port ändern

In diesem Beispiel haben wir die verwendet -P Option zum Angeben der Portnummer.

In einigen Fällen müssen wir einige andere Schritte ausführen, um die Kommunikation über einen Nicht-Default-Port zu ermöglichen. Wie die Identifizierung verfügbarer Ports, Aktualisierung von Firewall -Regeln, Selinux -Einstellungen usw.

In diesem Artikel haben wir das SSH -Protokoll und seine gemeinsamen Anwendungsfälle erörtert. Als nächstes haben wir einige gemeinsame Optionen besprochen. Schließlich haben wir einige Einstellungen besprochen, um den SSH -Server zu sichern.

Kennen Sie eine andere beste SSH -Befehlsnutzung in Linux?? Lassen Sie uns Ihre Ansichten in den Kommentaren unten wissen.