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

19 Gängige SSH-Befehle in Linux mit Beispielen

Einführung

SSH (Secure Shell) ist ein Netzwerkprotokoll, das sichere Remote-Verbindungen zwischen zwei Systemen ermöglicht. Systemadministratoren verwenden SSH-Dienstprogramme, um Maschinen zu verwalten, Dateien zwischen Systemen zu kopieren oder zu verschieben. Da SSH Daten über verschlüsselte Kanäle überträgt, ist die Sicherheit auf einem hohen Niveau.

Dieser Artikel führt Sie durch die beliebtesten SSH-Befehle . Die Liste kann auch als Spickzettel dienen und ist nützlich, wenn Sie das nächste Mal eine Aufgabe erledigen müssen.

Voraussetzungen

  • Ein SSH-Client Ihrer Wahl
  • Ein SSH-Server auf dem Remote-Rechner
  • Die IP-Adresse oder der Name des Remote-Servers

Zugriff auf einen Remote-Server

Um eine Verbindung zu einem Remote-Computer herzustellen, benötigen Sie seine IP-Adresse oder seinen Namen. Laden Sie das Terminal oder einen beliebigen SSH-Client und geben Sie ssh ein gefolgt von der IP-Adresse:

ssh 192.168.56.101

oder Name:

ssh test.server.com

Wenn Sie sich zum ersten Mal mit einem Host verbinden, sehen Sie diese Nachricht:

Geben Sie ja ein und drücken Sie die Eingabetaste. Möglicherweise müssen Sie auch Ihr Passwort eingeben.

Geben Sie einen Benutzernamen für die SSH-Verbindung an

SSH verwendet den aktuellen Benutzer beim Zugriff auf einen Remote-Server. Um einen Benutzer für eine SSH-Verbindung anzugeben, führen Sie den Befehl in diesem Format aus:

ssh [email protected]_or_ip

Zum Beispiel:

ssh [email protected]

Hinweis: Wenn Sie auf den Fehler „Verbindung abgelehnt“ stoßen, finden Sie Lösungen in unserem Leitfaden SSH „Verbindung abgelehnt“.

Verwenden Sie eine andere Portnummer für die SSH-Verbindung

Standardmäßig wartet der SSH-Server auf Port 22 auf eine Verbindung. Wenn die Porteinstellung in der SSH-Konfigurationsdatei geändert wurde, müssen Sie den Port angeben. Andernfalls erhalten Sie diesen Fehler:


Um eine Verbindung zu einem Remote-Host mit einer benutzerdefinierten SSH-Portnummer herzustellen, verwenden Sie -p Flagge. Zum Beispiel:

ssh test.server.com -p 3322

Generieren Sie SSH-Schlüssel mit SSH Keygen

Um die Sicherheit von SSH-Verbindungen zu verbessern, generieren Sie ein Schlüsselpaar mit dem Dienstprogramm keygen. Das Paar besteht aus einem öffentlichen und einem privaten Schlüssel. Der öffentliche Schlüssel kann geteilt werden, während der private Schlüssel sicher bleiben muss.

SSH-Schlüsselpaare werden verwendet, um Clients automatisch gegenüber Servern zu authentifizieren. Wenn Sie ein SSH-Schlüsselpaar erstellen, müssen Sie kein Passwort mehr eingeben, um auf einen Server zuzugreifen.

Verwenden Sie auf dem Terminal des Hostcomputers diesen Befehl, um ein Schlüsselpaar zu erstellen:

ssh-keygen -t rsa

Um die Standardeinstellungen zu verwenden, drücken Sie bei den Eingabeaufforderungen für Dateispeicherort und Passphrase die Eingabetaste.

Öffentlichen SSH-Schlüssel kopieren

Um das Schlüsselpaar für die SSH-Authentifizierung zu verwenden, müssen Sie den öffentlichen Schlüssel auf einen Server kopieren. Der Schlüssel ist die Datei id_rsa.pub zuvor mit dem SSH-Keygen-Dienstprogramm erstellt.

Um Ihren Schlüssel auf einen Server zu kopieren, führen Sie diesen Befehl vom Client aus:

ssh-copy-id hostname_or_IP

Sie können auch einen Benutzernamen angeben, wenn Sie nicht den aktuellen Benutzer verwenden möchten.

Geben Sie das Passwort ein, um sich zu authentifizieren, wenn Sie dazu aufgefordert werden. Danach müssen Sie das Passwort nicht mehr verwenden, um sich mit demselben Server zu verbinden.

Kopieren Sie eine Datei aus der Ferne über SSH mit SCP

Mit SCP können Sie Dateien sicher über das SSH-Protokoll kopieren Werkzeug. Die grundlegende Syntax ist:

scp fileName [email protected]:/home/username/destination

Zum Beispiel, um eine Datei sample3 zu kopieren zu Ihrem Desktop auf einem entfernten Server mit einem Benutzernamen test , geben Sie ein:

scp sample3 [email protected]:/home/test/Desktop

Die Ausgabe zeigt eine Zusammenfassung des Vorgangs.

Achten Sie darauf, Großbuchstaben zu verwenden -P Flag, wenn Sie den Port angeben müssen.

SSH-Konfigurationsdatei bearbeiten

Sie können steuern, wie entfernte Benutzer über SSH auf einen Server zugreifen können. Bearbeiten Sie die Einstellungen in sshd_config Datei zum Anpassen der SSH-Serveroptionen. Stellen Sie sicher, dass Sie nur die Optionen bearbeiten, mit denen Sie vertraut sind. Ein Server kann aufgrund einer schlechten Konfiguration unzugänglich werden.

Verwenden Sie den Editor Ihrer Wahl, um die Datei zu bearbeiten. Sie benötigen Superuser-Berechtigungen, um Änderungen vorzunehmen. Unter Linux verwenden wir vim :

Geben Sie in der Befehlszeile auf einem Remote-Host Folgendes ein:

sudo vim /etc/ssh/sshd_config

Geben Sie das sudo-Passwort ein, und die Shell öffnet die Datei in dem von Ihnen verwendeten Editor.

SSH-Dienst neu starten

Wenn Sie Änderungen an der SSH-Konfiguration vornehmen, müssen Sie den Dienst unter Linux neu starten.

Führen Sie je nach Linux-Distribution einen der folgenden Befehle auf dem Computer aus, auf dem Sie die Einstellungen geändert haben:

sudo ssh service restart

oder:

sudo sshd service restart

Geben Sie abschließend das Passwort ein, um den Vorgang abzuschließen. Als Ergebnis verwendet die nächste SSH-Sitzung die neuen Einstellungen.

Grundlegende SSH-Befehle

Das Arbeiten auf einem Remote-Server mit SSH erfordert die Kenntnis grundlegender SSH-Befehle. Verwenden Sie die Befehle und Optionen in diesem Artikel, um einen Remote-Host zu verwalten. Beachten Sie, dass Sie die Flags kombinieren können, um die gewünschte Ausgabe zu erhalten.

Arbeitsverzeichnispfad anzeigen

Verwenden Sie das pwd Befehl, um den Dateisystempfad anzuzeigen.

Die Ausgabe zeigt den Speicherort des Verzeichnisses an, in dem Sie sich befinden.

Dateien und Verzeichnisse auflisten

Verzeichnis wechseln

Um den Inhalt eines aktuellen Arbeitsordners aufzulisten, verwenden Sie ls Befehl.

Die Shell zeigt die Namen aller Verzeichnisse, Dateien und Links an. Um weitere Informationen zu erhalten, fügen Sie eines der folgenden Flags hinzu:

  • -a zeigt versteckte Linux-Dateien und Einträge an, die mit einem Punkt beginnen.
  • -l zeigt Dateidetails für Verzeichnisinhalte. Die Ausgabe enthält beispielsweise Berechtigungen, Eigentum, Datum usw.
  • -s listet die Größe der Dateien in Blöcken auf. Fügen Sie -h hinzu, um die Größe in einer für Menschen lesbaren Form anzuzeigen.

Um zu einem bestimmten Ordner zu navigieren, verwenden Sie cd Befehl und einen Namen oder Pfad eines Verzeichnisses.

cd Desktop/Downloads/Sample

Denken Sie daran, dass bei den Namen zwischen Groß- und Kleinschreibung unterschieden wird. Verwenden Sie cd ohne Name oder Pfad, um zum Home-Verzeichnis des Benutzers zurückzukehren.

Nützliche cd Zu den Optionen gehören:

  • cd .. Gehen Sie in das Verzeichnis, das eine Ebene höher ist als Ihr aktueller Standort.
  • cd - zum vorherigen Verzeichnis wechseln.
  • cd / gehe in das Stammverzeichnis.

Eine Datei kopieren

Verwenden Sie den cp Befehl zum Kopieren einer Datei oder eines Verzeichnisses. Sie müssen den Namen der Datei und den Zielspeicherort angeben.

cp fileName /directory/path/destination

Zum Kopieren von Datei1 vom Desktop zu Dir1 , geben Sie ein:

cp file1 Dir1

Um den Namen von Datei1 zu ändern Verwenden Sie beim Kopieren an einen anderen Zielort dieses Format:

cp file1 Dir1/Newfile1Name

Dieser Befehl kopiert file1 in Dir1 mit einem von Ihnen festgelegten Namen.

Um ein Verzeichnis und seinen Inhalt zu kopieren, verwenden Sie das Flag -r in diesem Format:

cp -r Directory1 NewLocation

Eine Datei verschieben

Die mv Der Befehl funktioniert genauso wie der Kopierbefehl.

Um beispielsweise eine Datei an einen anderen Ort zu verschieben, geben Sie Folgendes ein:

mv fileName directory/path/destination

Datei erstellen

Mit dem Touch-Befehl können Sie eine neue Datei mit einer beliebigen Erweiterung erstellen.

Geben Sie im Terminal folgenden Befehl ein:

touch fileName

Zum Beispiel, um ein system.log zu erstellen Datei, geben Sie ein:

touch system.log

Erstelle ein Verzeichnis

Verwenden Sie zum Erstellen eines Verzeichnisses mkdir Befehl. Geben Sie einen neuen Verzeichnisnamen oder vollständigen Pfad in diesem Format ein:

mkdir NewDirectoryName

Oder:

mkdir directory/path/NewDirectoryName

Eine Datei oder ein Verzeichnis löschen

Verwenden Sie zum Löschen einer Linux-Datei rm in diesem Format:

rm fileName

Zusätzlich können Sie einen vollständigen Pfad eingeben:

rm /home/user/dir1/fileName

Zum Löschen eines Verzeichnisses , fügen Sie -r hinzu Flag zum rm-Befehl.

Netzwerkinformationen anzeigen

Um den Status aller Netzwerkadapter anzuzeigen, verwenden Sie ifconfig Befehl. Wenn Sie außerdem keine Optionen mit ifconfig verwenden, zeigt die Ausgabe nur aktive Schnittstellen an.

Löschen Sie den Terminalbildschirm

Um den aktuellen Arbeitsbereich Ihres Bash-Bildschirms zu löschen, geben Sie clear ein in der Schale. Dieser Befehl löscht einen Teil des Bildschirms und verschiebt die vorherige Ausgabe nach oben.

Um die Ausgabe vom Terminal vollständig zu entfernen, verwenden Sie reset Befehl.

Führen Sie einen Befehl auf einem Remote-Server von einem lokalen Computer aus

Diese Methode erstellt keine neue Shell. Stattdessen führt es einen Befehl aus und bringt den Benutzer zur lokalen Eingabeaufforderung zurück. Sie können in diesem Format eine Datei erstellen, Dateien kopieren oder andere SSH-Befehle ausführen.

Um einen Befehl remote vom lokalen Computer auszuführen, hängen Sie eine Anweisung an den SSH-Befehl an. Um beispielsweise eine Datei zu löschen, geben Sie Folgendes ein:

ssh test.server.com rm ~/Desktop/Dir1/sample4

Geben Sie das Passwort ein und die Datei auf dem Remote-Server wird gelöscht, ohne dass eine neue Shell erstellt wird.

SSH-Befehlszeilenoptionen

Das SSH-Tool enthält viele optionale Parameter. Die folgende Tabelle listet allgemeine SSH-Optionen und die entsprechenden Beschreibungen auf.

SSH-Option Beschreibung
-1 Weist ssh an, Protokollversion 1 zu verwenden
-2 Weist ssh an, Protokollversion 2 zu verwenden.
-4 Erlaubt nur IPv4-Adressen.
-6 Erlaubt nur IPv6-Adressen.
-A Aktiviert die Verbindungsweiterleitung des Authentifizierungsagenten. Verwenden Sie diese Option mit Vorsicht.
-a Deaktiviert die Verbindungsweiterleitung des Authentifizierungsagenten.
-b bind_address Verwenden Sie diese Option auf dem lokalen Host mit mehr als einer Adresse, um die Quelladresse der Verbindung festzulegen.
-C Aktiviert die Datenkomprimierung für alle Dateien. Nur bei langsamen Verbindungen zu verwenden.
-c Verschlüsselungsspezifikation Verwenden Sie diese Option, um eine Verschlüsselungsspezifikation auszuwählen. Listen Sie die Werte durch ein Komma getrennt auf.
-E log_fileName Hängt Debug-Protokolle an log_file statt Standardfehler an.
-f Sendet ssh in den Hintergrund, noch bevor ein Passwort oder eine Passphrase eingegeben wird.
-g Erlaubt entfernten Hosts, sich mit Ports zu verbinden, die auf einem lokalen Rechner weitergeleitet werden.
-q Führt ssh im stillen Modus aus. Es unterdrückt die meisten Fehler- oder Warnmeldungen.
-V Zeigt die Version des SSH-Tools an und beendet sich.
-v Druckt Debugging-Meldungen für die SSH-Verbindung. Der ausführliche Modus ist hilfreich bei der Fehlersuche bei Konfigurationsproblemen.
-X Verwenden Sie diese Option, um die X11-Weiterleitung zu aktivieren.
-x X11-Weiterleitung deaktivieren.

Linux
  1. Senden Sie mit Terminator Befehle an mehrere SSH-Sitzungen

  2. Head- und Tail-Befehle in Linux mit Beispielen erklärt

  3. Mehr als 10 Linux-VI-Befehle mit Beispielen

  4. So arbeiten Sie mit dem SFTP-Client unter Linux – 10 sftp-Befehle

  5. Die einfachsten Linux-Befehle mit 10 Beispielen

Linux-IP-Befehl mit Beispielen

15 Linux-PS-Befehl mit Beispielen

Nmap-Befehle mit Beispielen

RPM-Befehle in Linux mit Beispielen

SSH-Befehle in Linux mit Verwendungsbeispielen

So verwalten Sie einen Linux-Server mit SSH aus der Ferne