Was ist SSH?
SSH steht für Secure Shell. Mit SSH können Sie auf sichere Weise auf entfernte Rechner zugreifen, da die Verbindung verschlüsselt ist. Mit dem ssh-Befehl aus dem Linux-Terminal können wir uns mit entfernten Linux-Servern verbinden und so arbeiten, als wäre es unser eigener Computer. Am Ende dieses Tutorials sollten Sie ein umfassendes Verständnis dafür haben, wie Sie SSH verwenden, um eine Verbindung zu einem entfernten Server in herzustellen. Ubuntu.
Syntax
Die Syntax ist die Regel, wie Sie den ssh-Befehl verwenden können. Sie können die Syntax umstellen, aber ein direktes Format muss eingehalten werden. Unten finden Sie ein Syntaxbeispiel für die Verwendung des ssh-Befehls:
|
1 |
ssh remote_host |
Der Domänenname oder die IP-Adresse, mit der Sie sich verbinden möchten, ist der remote_host, wie im obigen Befehl gezeigt. Diese Syntax setzt voraus, dass Ihr Benutzername auf dem entfernten System und Ihrem lokalen System identisch ist. Falls die Benutzernamen jedoch nicht identisch sind, können Sie dies mit diesem Befehl angeben:
|
1 |
ssh remote_username@remote_host |
Sie müssen Ihre Identität nachweisen, indem Sie sofort nach dem Verbindungsaufbau mit dem Server ein Passwort eingeben. Geben Sie den Befehl exit ein, um zu Ihrer lokalen Sitzung zurückzukehren.
So konfigurieren Sie SSH
Die Hauptkonfigurationsdatei für sshd in Ubuntu befindet sich unter /etc/ssh/sshd_config. Wenn Sie die SSH-Konfiguration ändern, ändern sich die Einstellungen des SSHD-Servers automatisch. Sichern Sie vor jeder Konfiguration die aktuelle Version der Datei mit diesem Befehl:
|
1 |
sudo cp /etc/ssh/sshd_config{,.bak} |
Verwenden Sie einen Texteditor, um sie zu öffnen:
|
1 |
sudo nano /etc/ssh/sshd_config |
Sie sollten die meisten Parameter in dieser Datei unverändert lassen. Es gibt jedoch ein paar Dinge, auf die Sie achten sollten:
|
1 |
Port 22 |
Die Port-Deklarationen geben den Port an, auf dem der SSHD-Server auf Verbindungen wartet. Der Standardwert ist 22. Sofern keine besonderen Gründe vorliegen, müssen Sie diese Einstellung nicht ändern:
|
1 2 3 |
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key |
Die Host-Key-Deklaration gibt an, wo sich der globale Host-Key befindet:
|
1 2 |
SyslogFacility AUTH LogLevel INFO |
Die Detailstufe der Protokollierung wird mit diesen beiden Elementen angegeben. Wenn Sie Probleme bei der Verwendung von SSH haben, ist eine hervorragende Möglichkeit zur Fehleridentifikation die Erhöhung der Protokollierungsstufe:
|
1 2 3 |
LoginGraceTime 120 PermitRootLogin yes StrictModes yes |
Diese Optionen definieren einige Informationen für die Anmeldung, um unbefugte Anmeldungen zu verhindern, wenn die Konfigurationsdateien unsicher sind:
|
1 2 |
X11Forwarding yes X11DisplayOffset 10 |
Diese Parameterkonfigurationen werden als X11-Weiterleitungsfunktionen bezeichnet. Auf diese Weise können Sie die grafische Benutzeroberfläche (GUI) des entfernten Systems auf dem lokalen System anzeigen. Sie müssen diese Option auf dem Server aktivieren, während Sie sich mit der Option -X mit dem SSH-Client verbinden.
Nachdem Sie die Änderungen vorgenommen haben, speichern Sie die Datei und schließen Sie sie, indem Sie STRG-X und Y und anschließend die Eingabetaste drücken. Wenn Sie Einstellungen in / etc / ssh / sshd_config ändern, müssen Sie den sshd-Server neu starten, um die Änderung auszuführen:
|
1 |
sudo service ssh restart |
Für systemd-Systeme wie Ubuntu 16.04 oder Debian Jessie verwenden Sie diesen Befehl:
|
1 |
sudo systemctl restart ssh |
Testen Sie Ihre Änderungen gründlich, um sicherzustellen, dass alles einwandfrei funktioniert. Sie sollten wahrscheinlich einige Sitzungen aktiv halten, wenn Sie Änderungen vornehmen. Auf diese Weise können Sie die Konfiguration bei Bedarf wiederherstellen.
Wie meldet man sich mit Schlüsseln bei SSH an? Es ist gut, sich mit einem Passwort an einem entfernten System anzumelden. Am besten ist es jedoch, eine schlüsselbasierte Authentifizierung einzurichten.
Was ist eine schlüsselbasierte Authentifizierung?
Die schlüsselbasierte Authentifizierung erstellt zwei Schlüsselpaare, die als privater und öffentlicher Schlüssel bezeichnet werden. Der private Schlüssel befindet sich auf dem Computer des Benutzers und wird geschützt und geheim gehalten. Der öffentliche Schlüssel kann jedem zur Verfügung gestellt oder auf jedem Server gespeichert werden, auf den Sie zugreifen möchten. Wenn Sie versuchen, eine Verbindung über ein Schlüsselpaar herzustellen, verwendet der Server den öffentlichen Schlüssel, um eine Nachricht für den Benutzercomputer zu generieren. Der Benutzer kann die Nachricht nur mit einem privaten Schlüssel lesen. Der Benutzercomputer sendet dann eine Antwort an den Server zurück, und der Server weiß, dass der Benutzer authentisch ist. Nach dem Einrichten des Schlüssels wird der gesamte Vorgang automatisch im Hintergrund abgeschlossen.
So erstellen Sie SSH-Schlüssel
SSH-Schlüssel sollten auf dem Computer generiert werden, von dem aus Sie sich anmelden möchten. Dies ist normalerweise Ihr lokaler Computer. Geben Sie Folgendes in die Befehlszeile ein:
|
1 |
ssh-keygen -t rsa |
Akzeptieren Sie dann die Standardwerte, indem Sie die EINGABETASTE drücken. Dadurch werden Ihre Schlüssel unter ~/.ssh/id_rsa.pub und ~/.ssh/id_rsa generiert. Geben Sie als Nächstes den folgenden Befehl ein, um in das Verzeichnis .ssh zu wechseln:
|
1 |
cd ~/.ssh |
Dies sind die Dateiberechtigungen:
|
1 |
ls -l |

Wie Sie sehen können, kann nur der Besitzer die Datei id_rsa lesen und schreiben. Daher müssen Sie sie sicher aufbewahren. Sie können jedoch die Datei id_rsa.pub freigeben und verfügen über die entsprechenden Berechtigungen für diese Aktivität. Der nächste Schritt besteht darin, den öffentlichen Schlüssel mit dieser Syntax auf den Server zu übertragen:
|
1 |
ssh-copy-id remote_host |
Dies startet eine SSH-Sitzung und Sie müssen ein Passwort zur Authentifizierung verwenden. Nach der Eingabe des Passworts wird Ihr öffentlicher Schlüssel in die Datei für autorisierte Schlüssel des Servers kopiert, sodass Sie sich beim nächsten Mal ohne Passwort anmelden können.
So deaktivieren Sie die Passwort-Authentifizierung
Wenn ein SSH-Schlüssel generiert wurde, können Sie die Sicherheit des Servers verbessern, indem Sie die reine Passwort-Authentifizierung deaktivieren. Sie können sich mit dem privaten Schlüssel auf dem Server anmelden, wobei der öffentliche Schlüssel auf dem Server installiert ist, anstatt die Konsole zu verwenden.
Hinweis: Stellen Sie sicher, dass Sie den öffentlichen Schlüssel auf dem Server installiert haben, bevor Sie mit diesem Schritt fortfahren. Wenn nicht, werden Sie ausgesperrt!
Öffnen Sie die sshd-Konfigurationsdatei mit diesem Befehl:
|
1 |
sudo nano /etc/ssh/sshd_config |
Suchen Sie die Zeile für die Passwort-Authentifizierung und kommentieren Sie sie aus, indem Sie das # am Anfang löschen. Dann können Sie den Wert in “no” ändern:
|
1 |
PasswordAuthentication no |
Die Optionen PubkeyAuthentication und ChallengeResponseAuthentication sind standardmäßig festgelegt und sollten wie folgt aussehen:
|
1 2 |
PubkeyAuthentication yes ChallengeResponseAuthentication no |
Sie sollten diese beiden Einstellungen nicht ändern. Speichern Sie danach die Datei und schließen Sie sie, sobald Sie die Änderungen vorgenommen haben. Verwenden Sie als Nächstes den folgenden Befehl, um den SSH-Daemon neu zu starten:
|
1 |
sudo systemctl restart ssh |
Schließlich haben Sie die Passwort-Authentifizierung deaktiviert, und auf Ihren Server kann nur noch über die SSH-Schlüssel-Authentifizierung zugegriffen werden.
Fazit
In dieser Anleitung haben wir Ihnen gezeigt, wie Sie SSH verwenden, um eine sichere Verbindung zu einem Remote-Server in Ubuntu herzustellen. Das Erlernen der Verwendung von SSH ist von grundlegender Bedeutung, wenn Sie ein Systemadministrator sind. Nach dem Meistern dieser Anleitung können Sie also mit fortgeschritteneren Funktionen von SSH fortfahren.
Viel Spaß beim Computing!
Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.