So installieren Sie SSH-Schlüssel unter Ubuntu 20.04
So installieren Sie SSH-Schlüssel unter Ubuntu 20.04

So installieren Sie SSH-Schlüssel unter Ubuntu 20.04

0 Aktien
0
0
0
0

So installieren Sie SSH-Schlüssel unter Ubuntu 20.04

Einführung

SSH (Secure Shell) ist ein verschlüsseltes Protokoll zur Verwaltung und Kommunikation mit Servern. Bei der Arbeit mit einem Ubuntu-Server verbringen Sie wahrscheinlich die meiste Zeit in einer Terminal-Sitzung, die über SSH mit Ihrem Server verbunden ist. Bleiben Sie dran, um zu erfahren, wie Sie SSH-Schlüssel unter Ubuntu 20.04 installieren.

In diesem HelfenIn diesem Artikel konzentrieren wir uns auf die Einrichtung von SSH-Schlüsseln für Ihre Ubuntu 20.04-Installation. SSH-Schlüssel bieten eine sichere Möglichkeit, sich an Ihrem Server anzumelden, und werden allen Benutzern empfohlen.

Schaffung DigitalOcean Droplet ermöglicht es Ihnen, die SSH-Schlüssel Ihres Computers sofort hinzuzufügen, um eine private und sichere Verbindung herzustellen.

Schritt 1 – Ein Schlüsselpaar erstellen

Der erste Schritt besteht darin, auf dem Clientgerät (in der Regel Ihrem Computer) ein Schlüsselpaar zu erstellen:

$ ssh-keygen

Standardmäßig erzeugen neuere Versionen von ssh-keygen ein 3072-Bit-RSA-Schlüsselpaar, das für die meisten Zwecke ausreichend sicher ist (optional kann man das Flag -b 4096 angeben, um einen größeren 4096-Bit-Schlüssel zu erzeugen).

Nach Eingabe des Befehls sollte folgende Ausgabe angezeigt werden:

Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):

Drücken Sie die Eingabetaste, um das Schlüsselpaar im Unterverzeichnis /ssh. Ihres Home-Verzeichnisses zu speichern, oder geben Sie einen alternativen Pfad an.

Wenn Sie zuvor ein SSH-Schlüsselpaar erstellt haben, wird Ihnen möglicherweise die folgende Eingabeaufforderung angezeigt:

Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?

Wenn Sie den Schlüssel auf die Festplatte schreiben, können Sie sich nicht mehr mit dem vorherigen Schlüssel authentifizieren. Seien Sie bei der Auswahl von „Ja“ äußerst vorsichtig, da dies ein irreversibler Vorgang ist.

Anschließend sollte folgende Benachrichtigung angezeigt werden:

Output
Enter passphrase (empty for no passphrase):

Hier können Sie optional eine sichere Passphrase eingeben, was dringend empfohlen wird. Eine Passphrase bietet eine zusätzliche Sicherheitsebene, um unbefugte Anmeldungen zu verhindern. Weitere Informationen zur Sicherheit finden Sie in unserem Tutorial zur Konfiguration der SSH-Schlüsselauthentifizierung auf einem Linux-Server.

Anschließend sollte eine Ausgabe ähnlich der folgenden angezeigt werden:

OutputYour identification has been saved in /your_home/.ssh/id_rsa
Your public key has been saved in /your_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host
The key's randomart image is:
+---[RSA 3072]----+
|                .|
|               + |
|              +  |
| .           o . |
|o       S   . o  |
| + o. .oo. ..  .o|
|o = oooooEo+ ...o|
|.. o *o+=.*+o....|
|    =+=ooB=o.... |
+----[SHA256]-----+

Sie verfügen nun über einen öffentlichen und einen privaten Schlüssel, die Sie zur Authentifizierung verwenden können. Im nächsten Schritt müssen Sie den öffentlichen Schlüssel auf Ihrem Server speichern, um sich per SSH-Schlüsselauthentifizierung anmelden zu können.

Schritt 2 – Kopieren Sie den öffentlichen Schlüssel auf den Ubuntu-Server

Der schnellste Weg, den öffentlichen Schlüssel auf einem Ubuntu-Host zu kopieren, ist die Verwendung des Tools ssh-copy-id. Aufgrund seiner Einfachheit ist diese Methode sehr empfehlenswert, sofern verfügbar. Falls ssh-copy-id auf Ihrem Client-Rechner nicht installiert ist, können Sie eine der beiden in diesem Abschnitt beschriebenen Alternativen nutzen (Kopieren per passwortbasiertem SSH oder manuelles Kopieren des Schlüssels).

Kopieren des öffentlichen Schlüssels mit ssh-copy-id

Das Tool `ssh-copy-id` ist auf vielen Betriebssystemen standardmäßig enthalten, daher ist es möglicherweise auch auf Ihrem lokalen System verfügbar. Für diese Methode benötigen Sie bereits passwortgeschützten SSH-Zugriff auf Ihren Server.

Um dieses Tool zu verwenden, geben Sie den Remote-Host an, zu dem Sie eine Verbindung herstellen möchten, sowie das Benutzerkonto, für das Sie passwortbasierten SSH-Zugriff besitzen. In dieses Konto wird Ihr öffentlicher SSH-Schlüssel kopiert.

So was:

$ ssh-copy-id username@remote_host

Möglicherweise wird Ihnen folgende Meldung angezeigt:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Das bedeutet, dass Ihr lokaler Computer den Remote-Host nicht erkennt. Sie stellen zum ersten Mal eine Verbindung zu einem neuen Host her. Geben Sie “ja” ein und drücken Sie die Eingabetaste, um fortzufahren.

Als Nächstes scannt das Tool Ihr lokales Konto nach dem zuvor erstellten Schlüssel id_rsa.pub. Sobald der Schlüssel gefunden wurde, werden Sie nach dem Passwort des Remote-Kontos gefragt:

Output
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:

Geben Sie das Passwort ein (aus Sicherheitsgründen wird Ihre Eingabe nicht angezeigt) und drücken Sie die Eingabetaste. Das Tool verbindet sich mit dem Benutzerkonto auf dem Remote-Host mithilfe des von Ihnen angegebenen Passworts. Anschließend kopiert es den Inhalt Ihres Schlüssels aus der Datei ssh/id_rsa.pub./~ in eine Datei namens authorized_keys im Home-Verzeichnis ssh./~ des Remote-Benutzerkontos.

Sie sollten folgende Ausgabe sehen:

Output
Number of key(s) added: 1

Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Ihr id_rsa.pub-Schlüssel wurde nun auf das Remote-Konto hochgeladen. Sie können mit Schritt 3 fortfahren.

Kopieren des öffentlichen Schlüssels mit SSH

Falls Sie keine ssh-copy-id zur Verfügung haben, aber über passwortbasierten SSH-Zugriff auf ein Konto auf Ihrem Server verfügen, können Sie Ihre Schlüssel mit der regulären SSH-Methode hochladen.

Dies erreichen wir, indem wir mit dem Befehl cat den Inhalt des öffentlichen SSH-Schlüssels auf unserem lokalen Computer lesen und ihn über eine SSH-Verbindung an den Remote-Server weiterleiten.

Alternativ können wir sicherstellen, dass das Verzeichnis ssh./~ existiert und die korrekten Berechtigungen für das von uns verwendete Konto besitzt.

Anschließend können wir den eingegebenen Inhalt in einer Datei namens „authorized_keys“ in diesem Verzeichnis speichern. Wir verwenden das Umleitungssymbol „<<“, um den Inhalt anzuhängen, anstatt ihn zu überschreiben. Dadurch können wir Schlüssel hinzufügen, ohne bereits vorhandene Schlüssel zu löschen.

Der vollständige Befehl lautet wie folgt:

$ cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Möglicherweise wird Ihnen folgende Meldung angezeigt:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Das bedeutet, dass Ihr lokaler Computer den Remote-Host nicht erkennt. Sie stellen zum ersten Mal eine Verbindung zu einem neuen Host her. Geben Sie „Ja“ ein und drücken Sie die Eingabetaste, um fortzufahren.

Anschließend sollten Sie aufgefordert werden, das Passwort für das Remote-Benutzerkonto einzugeben:

Output
[email protected]'s password:

Nach Eingabe des Passworts wird der Inhalt Ihres id_rsa.pub-Schlüssels an das Ende der authorized_keys-Datei des Remote-Kontos kopiert. Fahren Sie anschließend mit Schritt 3 fort.

Kopieren des öffentlichen Schlüssels

Falls Sie keinen passwortbasierten SSH-Zugriff auf Ihren Server haben, müssen Sie den oben beschriebenen Vorgang manuell durchführen.

Wir fügen den Inhalt Ihrer id_rsa.pub-Datei manuell zur Datei ssh/authorized_keys./~ auf Ihrem Remote-Rechner hinzu.

Um den Inhalt des Schlüssels id_rsa.pub anzuzeigen, geben Sie Folgendes auf Ihrem lokalen Computer ein:

# cat ~/.ssh/id_rsa.pub

Sie sehen dann den Inhalt des Schlüssels, der etwa so aussehen sollte:

Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test

Greifen Sie mit einer beliebigen Ihnen zur Verfügung stehenden Methode auf Ihren Remote-Host zu.

Sobald Sie Zugriff auf Ihr Konto auf dem Remote-Server haben, müssen Sie sicherstellen, dass das Verzeichnis ssh./~ existiert. Dieser Befehl erstellt das Verzeichnis gegebenenfalls oder hat keine Auswirkung, falls es bereits existiert:

$ mkdir -p ~/.ssh

Sie können nun die Datei authorized_keys in diesem Verzeichnis erstellen oder bearbeiten. Sie können den Inhalt Ihrer Datei id_rsa.pub am Ende der Datei authorized_keys hinzufügen und diese gegebenenfalls mit folgendem Befehl erstellen:

$ echo public_key_string >> ~/.ssh/authorized_keys

Ersetzen Sie im obigen Befehl public_key_string durch die Ausgabe des Befehls cat ~/.ssh/id_rsa.pub, den Sie auf Ihrem lokalen System ausgeführt haben. Diese sollte mit ssh-rsa AAAA… beginnen.

Abschließend stellen wir sicher, dass das Verzeichnis ssh./~ und die Datei authorized_keys die entsprechenden Berechtigungen besitzen:

$ chmod -R go= ~/.ssh

Dadurch werden rekursiv alle "group"- und "other"-Berechtigungen für das Verzeichnis /ssh./~ entfernt.

Wenn Sie das Root-Konto verwenden, um Schlüssel für ein Benutzerkonto einzurichten, ist es außerdem wichtig, dass das Verzeichnis ssh./~ dem Benutzer und nicht root gehört:

chown -R sammy:sammy ~/.ssh

In diesem Tutorial heißt unser Benutzer „sammy“, Sie sollten jedoch den entsprechenden Benutzernamen im obigen Befehl einsetzen.

Mit Ubuntu Server können wir nun eine passwortlose Authentifizierung durchführen.

Schritt 3 – Authentifizierung am Ubuntu-Server mithilfe von SSH-Schlüsseln

Wenn Sie einen der oben genannten Schritte erfolgreich abgeschlossen haben, sollten Sie sich beim Remote-Host anmelden können, ohne das Passwort des Remote-Kontos angeben zu müssen.

Der grundlegende Ablauf ist derselbe:

$ ssh username@remote_host

Wenn Sie zum ersten Mal eine Verbindung zu diesen Hosts herstellen (wenn Sie die oben genannte letzte Methode verwenden), sehen Sie möglicherweise Folgendes:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Das bedeutet, dass Ihr lokaler Computer den Remote-Host nicht erkennt. Geben Sie “ja” ein und drücken Sie anschließend die Eingabetaste, um fortzufahren.

Wenn Sie keine Passphrase für Ihren privaten Schlüssel angegeben haben, werden Sie sofort angemeldet. Wenn Sie bei der Erstellung des Schlüssels eine Passphrase festgelegt haben, werden Sie zur Eingabe aufgefordert (beachten Sie, dass Ihre Tastatureingaben aus Sicherheitsgründen nicht in der Terminal-Sitzung angezeigt werden). Nach der Authentifizierung sollte sich eine neue Shell-Sitzung mit dem auf dem Ubuntu-Server konfigurierten Konto öffnen.

Wenn die schlüsselbasierte Authentifizierung erfolgreich war, sollten Sie sich weiter informieren, wie Sie Ihr System noch besser absichern können, indem Sie die Passwortauthentifizierung deaktivieren.

Schritt 4 – Deaktivieren Sie die Passwortauthentifizierung auf Ihrem Server

Wenn Sie sich ohne Passwort per SSH in Ihr Konto einloggen konnten, haben Sie die SSH-Schlüsselauthentifizierung erfolgreich konfiguriert. Ihre passwortbasierte Authentifizierung ist jedoch weiterhin aktiviert, wodurch Ihr Server nach wie vor anfällig für Brute-Force-Angriffe ist.

Bevor Sie die Schritte in diesem Abschnitt ausführen, stellen Sie sicher, dass Sie entweder die SSH-Schlüsselauthentifizierung für das Root-Konto auf diesem Server konfiguriert haben oder – noch besser – die SSH-Schlüsselauthentifizierung für ein Nicht-Root-Konto mit sudo-Berechtigungen. Dieser Schritt verhindert passwortbasierte Anmeldungen; daher ist es sehr wichtig, dass Sie weiterhin administrativen Zugriff haben.

Sobald Sie überprüft haben, dass Ihr Remote-Konto über Administratorrechte verfügt, melden Sie sich mit Ihren SSH-Schlüsseln auf Ihrem Remote-Server an, entweder als Root oder mit einem Konto mit sudo-Rechten. Öffnen Sie anschließend die Konfigurationsdatei des SSH-Daemons:

$ sudo nano /etc/ssh/sshd_config

Suchen Sie in der Datei nach einer Direktive namens PasswordAuthentication. Diese Zeile ist möglicherweise auskommentiert und beginnt mit „#“. Entfernen Sie „#“ und setzen Sie den Wert auf „no“, um die Zeile zu aktivieren. Dadurch wird die Anmeldung per SSH mit Benutzerpasswörtern deaktiviert.

/etc/ssh/sshd_config


. . .
PasswordAuthentication no
. . .

Nach Abschluss der Bearbeitung speichern und schließen Sie die Datei mit Strg+X, dann mit Y zum Bestätigen des Speicherns und schließlich mit der Eingabetaste zum Beenden von nano. Um diese Änderungen zu aktivieren, muss der SSHD-Dienst neu gestartet werden.

$ sudo systemctl restart ssh

Öffnen Sie vorsichtshalber ein neues Terminalfenster und testen Sie, ob der SSH-Dienst ordnungsgemäß funktioniert, bevor Sie Ihre aktuelle Sitzung schließen:

# ssh username@remote_host

Sobald Sie sich vergewissert haben, dass Ihr SSH-Dienst ordnungsgemäß funktioniert, können Sie alle aktuellen Serversitzungen gefahrlos schließen.

Der SSH-Daemon auf Ihrem Ubuntu-Server reagiert nun ausschließlich auf SSH-Schlüsselbasierte Authentifizierung. Passwortbasierte Anmeldungen wurden deaktiviert.

Ergebnis

Nun müssen Sie die SSH-Schlüsselbasierte Authentifizierung auf Ihrem Server konfigurieren, damit Sie sich anmelden können, ohne ein Kontopasswort angeben zu müssen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte Ihnen auch gefallen

Wolkenraum

Was ist Cloud-Speicher und welche Cloud-Speicherlösungen gab es 2020 am besten? Angesichts der zunehmenden Nutzung von Cloud-Speicher…