So fügen Sie SSH-Schlüssel unter Ubuntu 20.04 hinzu

So fügen Sie SSH-Schlüssel unter Ubuntu 20.04 hinzu

Richten Sie mit SSH-Schlüsseln eine sichere, passwortlose Anmeldung bei Ihrem Remote-Ubuntu-Server ein

SSH ist ein sicheres Client-Server-Netzwerkprotokoll, das einem Client-Computer hilft, eine Verbindung zu einem Remote-Server herzustellen und mit ihm zu kommunizieren. Die SSH-Verbindung stellt sicher, dass die im Terminal eingegebenen Befehle über einen verschlüsselten Kanal an den Remote-Server gesendet werden.

Es gibt zwei Arten von Authentifizierungsmechanismen, die verwendet werden, um eine Verbindung zum Remote-Server herzustellen, die kennwortbasierte Authentifizierung (anfällig für Brute-Force-Angriffe) und die SSH-Schlüssel-basierte Authentifizierung (die sehr sicher ist).

Bei der SSH-Schlüssel-basierten Authentifizierung wird auf dem Client-Computer ein Schlüsselpaar generiert, das als öffentlicher Schlüssel und privater Schlüssel bezeichnet wird. Eine Kopie dieses öffentlichen Schlüssels wird auf dem entfernten Server bereitgestellt. Wenn ein Client eine Verbindungsanfrage an den Server sendet, generiert der Server eine zufällige Zeichenfolge und verschlüsselt sie mit dem öffentlichen Schlüssel. Diese Zeichenfolge kann nur mit dem privaten Schlüssel entschlüsselt werden, der auf dem Clientcomputer verfügbar ist. Diese Methode stellt sicher, dass nur Clients mit dem privaten Schlüssel auf den Server zugreifen können.

In diesem Handbuch erfahren Sie, wie Sie SSH-Schlüssel auf dem Ubuntu 20.04 LTS-Server einrichten.

Überprüfen Sie, ob auf Ihrem Computer ein SSH-Schlüssel vorhanden ist

Um zu überprüfen, ob bereits ein SSH-Schlüsselpaar auf Ihrem Computer vorhanden ist, geben Sie diesen Befehl in Ihr Terminal ein.

ls -l ~/.ssh/id_*.pub

Wenn der obige Befehl no such file or directoryoder zurückgibt no matches found, bedeutet dies, dass kein SSH-Schlüsselpaar vorhanden ist.

Wenn Sie über ein vorhandenes SSH-Schlüsselpaar verfügen, können Sie entweder dasselbe Schlüsselpaar verwenden, um auf zwei Remote-Server zuzugreifen, oder Sie können auch ein anderes Schlüsselpaar mit einem anderen Namen erstellen. Lassen Sie uns zum nächsten Schritt übergehen und sehen, wie Sie SSH-Schlüssel für beide Fälle generieren.

Erstellen von SSH-Schlüsseln auf einem Client-Computer

Um ein neues SSH-Schlüsselpaar auf Ihrem Computer zu generieren, geben Sie den folgenden Befehl ein.

ssh-keygen

Standardmäßig haben die SSH-Schlüssel 2048 Bit. Wenn Sie SSH-Schlüssel mit höheren Bits generieren möchten, verwenden Sie zur besseren Sicherheit den folgenden Befehl.

ssh-keygen -b 4096

Wenn der Befehl erfolgreich ausgeführt wird, wird die folgende Meldung auf Ihrem Bildschirm angezeigt.

Generieren eines öffentlichen/privaten rsa-Schlüsselpaars.
Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/home/harshit/.ssh/id_rsa):

Wenn Sie jetzt kein vorhandenes SSH-Schlüsselpaar auf Ihrem Computer haben, drücken EnterSie einfach . Wenn Sie jedoch einen vorhandenen SSH-Schlüssel haben, speichern Sie den Schlüssel unter einem anderen Dateinamen, wie unten gezeigt.

Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx

Ersetzen Sie das xxxam Ende des Dateinamens durch einen geeigneten Namen, wie unten gezeigt, und drücken Sie Enter.

Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1

Die nächste Eingabeaufforderung fordert Sie auf, eine Passphrase beliebiger Länge einzugeben. Dies gewährleistet eine zweistufige Sicherheit auf Ihrem Gerät. 

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Durch die Eingabe dieser Passphrase wird sichergestellt, dass eine Person, selbst wenn sie Zugriff auf Ihren privaten Schlüssel erhält, ohne diese Passphrase nicht auf Ihren Remote-Server zugreifen kann.

Sobald der gesamte Vorgang abgeschlossen ist, erscheint die folgende Meldung auf Ihrem Bildschirm.

So fügen Sie SSH-Schlüssel unter Ubuntu 20.04 hinzu

Die SSH-Schlüssel wurden auf Ihrem System generiert. Jetzt ist es an der Zeit, den öffentlichen Schlüssel auf den Remote-Server zu kopieren.

Kopieren des öffentlichen Schlüssels auf den Remote-Ubuntu-Server

Die einfachste und schnellste Methode zum Kopieren des öffentlichen Schlüssels auf den Remoteserver ist die Verwendung des ssh-copy-idDienstprogramms. Wenn dieses Dienstprogramm jedoch aus irgendeinem Grund auf Ihrem Computer nicht verfügbar ist, können Sie auch andere in diesem Abschnitt beschriebene Methoden verwenden.

Verwenden des Dienstprogramms ssh-copy-id

Das ssh-copy-idDienstprogramm ist standardmäßig auf Ihrem Ubuntu-Computer verfügbar, der den öffentlichen Schlüssel von Ihrem Gerät in das entsprechende Verzeichnis Ihres entfernten Ubuntu-Computers kopiert.

Um den öffentlichen ssh-Schlüssel zu kopieren, geben Sie einfach den Befehl in Ihr Terminal ein, wie unten gezeigt.

ssh-copy-id [email protected]

Ersetzen Sie das usernameund hostnameim obigen Befehl durch den Benutzernamen und den Hostnamen Ihres Servers.

Wenn Sie zum ersten Mal eine Verbindung zu Ihrem Host herstellen, wird die folgende Meldung auf Ihrem Terminal angezeigt, geben Sie ein yesund drücken Sie Enter.

Die Authentizität des Hosts '172.105.XX.XX (172.105.XX.XX)' kann nicht festgestellt werden.
Der Fingerabdruck des ECDSA-Schlüssels ist xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx.
Möchten Sie die Verbindung wirklich fortsetzen (ja/nein)? Jawohl

Jetzt sucht das ssh-copy-idDienstprogramm nach der Datei mit dem Namen, id_rsa.pubdie den öffentlichen SSH-Schlüssel enthält. Sobald der Scanvorgang abgeschlossen ist, werden Sie aufgefordert, das Passwort Ihres Remote-Servers einzugeben, wie unten gezeigt. Geben Sie das Passwort ein und drücken Sie Enter.

/usr/bin/ssh-copy-id: INFO: Versuch, sich mit den neuen Schlüsseln anzumelden, um alle bereits installierten herauszufiltern
/usr/bin/ssh-copy-id: INFO: Es müssen noch 1 Schlüssel installiert werden -- wenn Sie jetzt dazu aufgefordert werden, müssen die neuen Schlüssel installiert werden
Passwort von [email protected] :

Sobald der Schlüssel hinzugefügt wurde, wird die folgende Meldung auf Ihrem Terminal als Ausgabe angezeigt.

Anzahl der hinzugefügten Schlüssel: 1
Versuchen Sie nun, sich mit: "ssh ' [email protected] '" am Computer anzumelden und überprüfen Sie, ob nur die gewünschten Schlüssel hinzugefügt wurden.

Falls Sie mehrere SSH-Schlüssel auf Ihrem Client-Computer haben, geben Sie den Befehl in dem unten gezeigten Muster ein, um den entsprechenden öffentlichen Schlüssel auf Ihren Remote-Computer zu kopieren.

ssh-copy-id -i id_rsa_xxx.pub [email protected]

💡 Tipp

Vergessen Sie nicht, .pub an das Ende des Dateinamens zu setzen, während Sie das Terminal eingeben.

Kopieren des öffentlichen Schlüssels nach der Piping-Methode

Geben Sie den folgenden Befehl in das Terminal ein, wenn das ssh-copy-idDienstprogramm nicht verfügbar ist. Dieser Befehl mag etwas länger erscheinen, funktioniert aber entsprechend.

cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Ersetzen Sie remote_usernameund server_ip_addressdurch Ihren Benutzernamen und Ihre IP-Adresse.

Wenn auf Ihrem Computer mehrere SSH-Schlüssel verfügbar sind, ersetzen Sie diese id_rsa.pubdurch die öffentliche SSH-Schlüsseldatei Ihrer Wahl. Zum Beispiel id_rsa_client_1.pub.

Geben Sie das Remote-Benutzerkennwort ein, wenn Sie dazu aufgefordert werden, und drücken Sie Enter.

[email protected]'s password:

Sobald Sie das Kennwort eingeben, wird die id_rsa.pubDatei in die authorized_keysDatei des Remote-Servers kopiert .

Manuelles Kopieren des öffentlichen Schlüssels

Verwenden Sie diese Methode, wenn Sie über die Kennwortauthentifizierung keinen Zugriff auf Ihr Remote-System haben.

Öffnen Sie die id_rsa.pubDatei mit dem catBefehl im Terminal. Sie können es auch von einem Texteditor aus öffnen, der Zweck besteht nur darin, den Inhalt der Datei zu kopieren.

cat ~/.ssh/id_rsa.pub

Der Inhalt der Datei sieht wie unten gezeigt aus.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH [email protected] _PC

Melden Sie sich nun bei Ihrem Remote-Server an und fügen Sie den kopierten Inhalt mit dem unten gezeigten Befehl ein. Ersetzen Sie das above_stringdurch den kopierten Inhalt.

echo above_string >> ~/.ssh/authorized_keys

Mehrere SSH-Schlüssel konfigurieren (optional)

Dieser Schritt ist für Personen gedacht, die auf ihrem Clientcomputer mehrere SSH-Schlüssel eingerichtet haben. Überspringen Sie diesen Abschnitt, wenn Sie nur ein SSH-Schlüssel-Setup haben.

Um mehrere SSH-Schlüssel zu verwalten, erstellen wir nun mit dem unten gezeigten Befehl eine configDatei im .sshVerzeichnis.

cd ~/.ssh
vim config

Geben Sie ein i, um in den Befehlsmodus zu gelangen, und geben Sie die Details mehrerer Hosts ein, wie im folgenden Beispiel gezeigt:

Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1

Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2

Geben Sie auf ähnliche Weise die Details anderer Remoteserver und deren Schlüssel ein. Sobald der Vorgang abgeschlossen ist, drücken Sie Escund :wqzum Speichern und Beenden.

Jetzt sind die nachfolgenden Prozesse für beide mit einem oder mehreren SSH-Schlüsseln auf dem Client-Computer gleich.

Melden Sie sich mit SSH-Schlüsseln bei Ihrem Remote-Server an

Sobald das Kopieren Ihres öffentlichen Schlüssels abgeschlossen ist, melden Sie sich bei Ihrem Remote-Server an, indem Sie den unten gezeigten Befehl eingeben.

ssh [email protected]_ip_address

Wenn Sie die Passphrase beim Generieren des Schlüsselpaars angegeben haben, werden Sie aufgefordert, sie einzugeben. Nach Abschluss des Authentifizierungsprozesses wird eine neue Sitzung geöffnet.

Sie haben nun erfolgreich die SSH-Schlüssel-basierte Authentifizierung auf Ihrem Remote-Server konfiguriert. Aber die passwortbasierte Authentifizierung ist auf Ihrem Server immer noch aktiv, das bedeutet, dass Ihr entfernter Server immer noch anfällig für Brute-Force-Angriffe ist.

Also werden wir jetzt den passwortbasierten Anmeldemechanismus von unserem Remote-Server vollständig deaktivieren.

Deaktivieren Sie den passwortbasierten Anmeldemechanismus

Bevor Sie Änderungen vornehmen, stellen Sie sicher, dass der Root-Benutzer oder jeder sudo-aktivierte Benutzer für Ihr Remote-Konto über das SSH-Schlüsselbasierte Authentifizierungssystem Zugriff auf Ihren Server hat. Dieser Schritt sperrt oder deaktiviert die passwortbasierte Anmeldung vollständig, daher ist es wichtig, dass mindestens ein Benutzer mit Root-Rechten über einen SSH-Schlüssel Zugriff auf den Server hat.

Melden Sie sich bei Ihrem Remote-Ubuntu-Server an und geben Sie den unten gezeigten Befehl ein.

sudo vim /etc/ssh/sshd_config
  • Drücken Sie Esc, geben Sie /'PasswordAuthentication' ein und drücken Sie enter
  • Drücken Sie nun iund ändern Sie den Wert von 'PasswordAuthentication yes' in 'PasswordAuthentication no'.
  • Drücken Sie Escund wiederholen Sie den Vorgang ‚ChallengeResponseAuthentication‘ zu finden, ‚UsePAM‘, und ihre Werte ändern noals auch.
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Sobald alle Werte auf eingestellt sind no, drücken Sie Esc, geben Sie ein :wqund drücken Sie enter.

Um alle Änderungen zu aktivieren, starten Sie den sshDienst mit dem folgenden Befehl neu.

sudo systemctl restart ssh

Öffnen Sie nun ein neues Terminalfenster auf Ihrem Computer und überprüfen Sie, ob Ihre SSH-Schlüssel-Authentifizierung ordnungsgemäß funktioniert, bevor Sie die aktuelle Sitzung schließen.

Schließen Sie nach Abschluss des Überprüfungsprozesses alle laufenden Sitzungen.

Wir haben nun erfolgreich die SSH-Schlüssel-basierte Authentifizierung auf unserem Ubuntu 20.04-Server konfiguriert. Jetzt kann sich niemand mehr über einen passwortbasierten Anmeldemechanismus an Ihrem Server anmelden. 


Kopieren und Einfügen auf Chromebook

Kopieren und Einfügen auf Chromebook

Das erste, was Sie sich beim Wechsel zu einem Chromebook vielleicht fragen werden, ist, wie Sie die grundlegenden Dinge erledigen - die Art von Dingen, die Sie in Ihrem vorherigen Betriebssystem auf der Rückseite hatten. Kopieren und Einfügen ist eine dieser grundlegenden Funktionen, die Sie an der einen oder anderen Stelle verwenden müssen.

So machen Sie einen Schreibtest unter Linux mit tt

So machen Sie einen Schreibtest unter Linux mit tt

In der modernen Ära der Technologie ist das Tippen zu einer der häufigsten Tätigkeiten für viele Berufe geworden. Wenn Sie lernen, schneller und genauer zu tippen, können Sie mehr Dinge in der gleichen Zeit erledigen.

WLAN funktioniert nicht unter Ubuntu? So beheben Sie es

WLAN funktioniert nicht unter Ubuntu? So beheben Sie es

Ubuntu ist beliebt für seine Robustheit und relativ weniger Fehler. Aber es ist sicher nicht ohne Probleme. Ein solches Problem ist mit seinem Wi-Fi-Treiber. Möglicherweise schalten Sie Ihr System nur ein, um festzustellen, dass Ihr Wi-Fi nicht funktioniert.

So erstellen und scannen Sie QR-Codes auf Chromebook

So erstellen und scannen Sie QR-Codes auf Chromebook

Quick Response Codes, kurz QR-Codes, sind fortschrittliche Barcodes, die mehr Informationen enthalten als ein herkömmlicher Barcode. Diese Codes sind zweidimensional, sodass Sie sie vertikal oder horizontal scannen können.

So installieren und entfernen Sie Pakete in Arch Linux

So installieren und entfernen Sie Pakete in Arch Linux

Sie möchten Pakete unter Arch Linux installieren, wissen aber nicht wie? Viele Leute stehen vor diesem Problem, wenn sie zum ersten Mal von Debian-basierten Distributionen zu Arch migrieren. Sie können Pakete auf Ihrem Arch-basierten System jedoch problemlos mithilfe von Paketmanagern verwalten.

So installieren Sie Spotify unter Linux

So installieren Sie Spotify unter Linux

Spotify ist einer der größten Musik-Streaming-Dienste auf dem Markt. Es verfügt über native Clients sowohl für mobile (Android und iOS) als auch für Desktop-Geräte (Mac und Windows).

9 grundlegende Befehle für den Einstieg in Linux

9 grundlegende Befehle für den Einstieg in Linux

In Linux-Anleitungen wird oft erwartet, dass Sie bestimmte Operationen im Terminal ausführen, was auf den ersten Blick einschüchternd wirken kann. Aber keine Sorge; Dieser Spickzettel für Linux-Befehle behandelt das Öffnen eines Terminals und das Ausgeben einiger nützlicher Befehle.

So verschieben Sie Linux-Dateien mit dem Mv-Befehl

So verschieben Sie Linux-Dateien mit dem Mv-Befehl

Während Sie wahrscheinlich bereits wissen, wie Sie eine Datei unter Linux mit dem GUI-Dateibrowser verschieben, fragen Sie sich vielleicht, ob es im Terminal einen Verschiebebefehl gibt, mit dem Sie Dateien schnell in verschiedene Verzeichnisse verschieben können. Der mv-Befehl ist der gewünschte und mit seiner einfachen Syntax und einigen optionalen Sicherheitsflags einfach zu verwenden.

Die 15 besten Themen für Ubuntu 20.04 im Jahr 2020

Die 15 besten Themen für Ubuntu 20.04 im Jahr 2020

Viele neue aktualisierte Designs können auf dem neuen GNOME-Desktop von Ubuntu 20.04 installiert werden. Hier ist eine Liste der besten Ubuntu-Themes im Jahr 2020

Die 10 besten Debian-basierten Linux-Distributionen

Die 10 besten Debian-basierten Linux-Distributionen

Das Standard-Debian und sein beliebter Ableger Ubuntu sind großartige Allround-Optionen für ein Linux-System, aber wenn Sie speziellere Bedürfnisse haben, möchten Sie vielleicht eine Debian-Alternative.