Startseite > Netzwerkverwaltung > ssh

SSH (Secure Shell) Befehlshandbuch

SSH (Secure Shell) ist ein Netzwerkprotokoll, das eine sichere Verbindung zu einem entfernten Computer ermöglicht und Befehle ausführt. Es bietet Datensicherheit durch verschlüsselte Kommunikation und wird für verschiedene Zwecke wie Remote-Server-Management und Dateiübertragungen verwendet. Lernen Sie die Hauptfunktionen und die Verwendung von SSH in diesem Leitfaden kennen.

Übersicht über SSH

SSH funktioniert nach dem Client-Server-Modell und verbindet sich über einen SSH-Client mit einem SSH-Server. Standardmäßig wird der Port 22 verwendet, und die Kommunikation wird durch starke Verschlüsselungstechnologien vor Bedrohungen wie Man-in-the-Middle-Angriffen oder Datenabfang geschützt.

Hauptfunktionen von SSH

SSH bietet die folgenden Hauptfunktionen:

Wichtige Funktionen von SSH

  • Remote-Befehlsausführung: Sie können Befehle direkt auf einem entfernten Server ausführen.
  • Sichere Dateiübertragung: `scp` (Secure Copy) oder `sftp` (SSH File Transfer Protocol) ermöglichen eine sichere Übertragung von Dateien.
  • Port-Weiterleitung (Tunneling): Es wird ein verschlüsselter Tunnel zwischen lokalen und entfernten Ports erstellt, um spezifische Dienste sicher zu nutzen.
  • X11-Weiterleitung: Es ermöglicht, GUI-Anwendungen vom entfernten Server auf dem lokalen PC auszuführen.
  • SSH-Schlüsselbasierte Authentifizierung: Statt Passwörtern wird ein Paar aus öffentlichem und privatem Schlüssel verwendet, um eine sicherere und bequemere Authentifizierung zu bieten.

Wichtige SSH-Befehle

Erfahren Sie, wie Sie mit dem SSH-Befehl auf einen entfernten Server zugreifen und verschiedene Aufgaben ausführen können. Kombinieren Sie die einzelnen Optionen, um die benötigten Funktionen zu nutzen.

1. Grundlegender Zugang und Authentifizierung

2. Erweiterte Funktionen und Weiterleitung

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`ssh` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

SSH-Schlüsselbasierte Authentifizierung

Die schlüsselbasierte Authentifizierung ist eine viel sicherere und bequemere Methode als die Passwortauthentifizierung. Sie verwendet ein Paar aus öffentlichem und privatem Schlüssel zur Authentifizierung und verringert das Risiko der Passwortenthüllung.

SSH-Schlüssel erstellen

Verwenden Sie den Befehl `ssh-keygen`, um ein Paar aus öffentlichem und privatem Schlüssel zu erstellen. Standardmäßig werden die Dateien `~/.ssh/id_rsa` (privater Schlüssel) und `~/.ssh/id_rsa.pub` (öffentlicher Schlüssel) erstellt.

Befehl zum Erstellen von SSH-Schlüsseln

ssh-keygen -t rsa -b 4096

Erstellt ein neues SSH-Schlüsselpaar auf der Festplatte. Sie können den Speicherort und das Passwort für den Schlüssel festlegen.

Verteilung des öffentlichen Schlüssels

Der erzeugte öffentliche Schlüssel (`id_rsa.pub`) muss in die Datei `~/.ssh/authorized_keys` im Heimatverzeichnis des Benutzers auf dem entfernten Server eingefügt werden. Benutzer, deren öffentlicher Schlüssel in dieser Datei registriert ist, können sich ohne Passwort mit ihrem privaten Schlüssel am Server anmelden.

Öffentlichen Schlüssel auf den Server kopieren (mit ssh-copy-id)

ssh-copy-id user@hostname

Mit dem Befehl `ssh-copy-id` können Sie den öffentlichen Schlüssel einfach auf den entfernten Server kopieren. Dies ist die am meisten empfohlene Methode.

Öffentlichen Schlüssel manuell kopieren (mit scp)

scp ~/.ssh/id_rsa.pub user@hostname:~/
ssh user@hostname "mkdir -p ~/.ssh && cat ~/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys && rm ~/id_rsa.pub"

Wenn `ssh-copy-id` nicht verwendet werden kann, können Sie den öffentlichen Schlüssel mit `scp` auf den Server kopieren und dann manuell zu `authorized_keys` hinzufügen.

SSH-Konfigurationsdatei (~/.ssh/config)

Mit der SSH-Konfigurationsdatei (`~/.ssh/config`) können Sie die Verbindungsinformationen für häufig verwendete Server im Voraus speichern, um sie bequem zu nutzen. Anstatt komplexe Optionen jedes Mal einzugeben, können Sie einfach mit einem Alias (Alias) eine Verbindung herstellen.

Beispiel für eine Konfigurationsdatei

Das Folgende ist ein Beispiel für die Datei `~/.ssh/config`. Sie können die Verbindungsparameter für mehrere Hosts definieren.

Inhalt der config-Datei

Host myserver
  HostName 192.168.1.100
  User myuser
  Port 2222
  IdentityFile ~/.ssh/my_server_key.pem

Host dev-web
  HostName dev.example.com
  User webadmin
  ForwardAgent yes
  LocalForward 8080 localhost:80

Wichtige Konfigurationsoptionen

Wichtige Optionen, die in der `config`-Datei verwendet werden können.

  • Host: Dies ist das Alias dieses Einstellungsblocks. Es wird verwendet, wie `ssh myserver`.
  • HostName: Die IP-Adresse oder der Domainname des entfernten Hosts, zu dem Sie eine Verbindung herstellen möchten.
  • User: Der Benutzername, mit dem Sie sich am entfernten Server anmelden möchten.
  • Port: Die Portnummer, über die Sie sich verbinden möchten.
  • IdentityFile: Der Pfad zur Datei des privaten Schlüssels, die für die Authentifizierung verwendet wird.
  • LocalForward: Richten Sie die lokale Portweiterleitung ein. `LocalForward [local_port] [remote_host]:[remote_port]`
  • RemoteForward: Richten Sie die Remote-Portweiterleitung ein. `RemoteForward [remote_port] [local_host]:[local_port]`
  • ForwardAgent: Aktiviert das SSH-Agent-Forwarding. Nützlich, wenn Sie über mehrere Server hinweg eine Verbindung herstellen.
  • ServerAliveInterval: Sendet regelmäßig Signale an den Server, um sicherzustellen, dass die SSH-Verbindung nicht abbricht. (in Sekunden)
  • StrictHostKeyChecking: Legt fest, ob die Überprüfung des Hostschlüssels erfolgt. `ja` oder `nein`

Verbindung über die Konfigurationsdatei herstellen

ssh myserver

Wenn Sie in der Datei `~/.ssh/config` das Host-Alias `myserver` definiert haben, können Sie sich ganz einfach wie folgt verbinden.

Verwendung Beispiele

Lernen Sie durch verschiedene Beispiele für die Verwendung des SSH-Befehls die tatsächlichen Szenarien für die Verwaltung von Remote-Servern und Dateiübertragungen kennen.

Grundlegender SSH-Zugang

ssh testuser@192.168.1.100

Verbinden Sie sich mit dem Server 192.168.1.100 unter dem Benutzernamen testuser. Es erscheint eine Aufforderung zur Eingabe des Passworts.

Zugang mit SSH-Schlüsseldatei

ssh -i ~/.ssh/my_key.pem ubuntu@ec2-1-2-3-4.compute-1.amazonaws.com

Verwenden Sie anstelle eines Passworts die private Schlüsseldatei `~/.ssh/my_key.pem`, um sich mit dem Server zu verbinden. (Wird häufig in Cloud-Umgebungen verwendet)

Ausführen eines einzelnen Befehls aus der Ferne

ssh user@hostname "ls -l /var/log"

Führen Sie den Befehl `ls -l /var/log` auf dem Server aus, ohne sich mit ihm zu verbinden, und holen Sie die Ergebnisse lokal ab.

Lokale Portweiterleitung (Zugriff auf Webdienste)

ssh -L 8888:localhost:80 user@hostname

Greifen Sie über den lokalen PC auf den Port 80 (Webserver) des entfernten Servers über den Port 8888 zu. Es ist, als ob der Webserver lokal wäre.

Dateiübertragung mit SCP (lokal -> remote)

scp mylocalfile.txt user@hostname:/tmp/

Kopieren Sie die Datei `mylocalfile.txt`, die sich lokal befindet, in das Verzeichnis `/tmp/` des entfernten Servers.

Dateiübertragung mit SCP (remote -> lokal)

scp user@hostname:/var/log/syslog .

Kopieren Sie die Datei `/var/log/syslog` des entfernten Servers in das aktuelle Verzeichnis des lokalen PCs.


Gleiche Kategorie Befehle