Wenn Sie einen Linux-Server verwalten, wissen Sie, wie mühsam es sein kann, jedes Mal Ihr Passwort einzugeben, wenn Sie sich über SSH anmelden oder Dateien mit scp kopieren. In diesem Tutorial wird die Verwendung des SSH-Schlüssels vorgestellt, um eine passwortlose SSH-Anmeldung zu erreichen. Es ist nicht erforderlich, ein Passwort einzugeben, wenn Sie scp zum Kopieren von Dateien verwenden. Neben der Erleichterung der SSH-Anmeldung und dem Kopieren von SCP-Dateien bietet die kennwortlose SSH-Anmeldung auch eine weitere Sicherheitsmaßnahme für den Linux-Server.

Schritte zur Einrichtung der passwortlosen SSH-Anmeldung

  1. Zuerst generieren wir ein Paar SSH-Schlüssel auf unserem Linux-System: SSH-Schlüssel und öffentlicher SSH-Schlüssel. Der Schlüssel wird auf einem eigenen Linux-System aufbewahrt.
  2. Anschließend wird der öffentliche Schlüssel auf den Linux-Server hochgeladen. Danach können wir uns per SSH ohne Passwort anmelden. Ein SSH-Schlüssel ist wie Ihr Identitätsnachweis.

1 Generieren Sie SSH-Schlüssel und öffentliche Schlüssel auf Ihrem eigenen Linux-System

Öffnen Sie ein Terminal und verwenden Sie ssh-keygen unten, um den RSA-Schlüssel und den öffentlichen Schlüssel zu generieren. -t gibt den Typ an, der bedeutet, dass ein RSA-Verschlüsselungsschlüssel generiert werden soll.

ssh-keygen -t rsa

RSA ist auch der Standardverschlüsselungstyp. Sie können also auch einfach ssh-keygen eingeben. Die Standard-RSA-Länge beträgt 2048 Bit. Wenn Sie sehr sicherheitsbewusst sind, können Sie eine Länge von 4096 Bit angeben.

ssh-keygen -b 4096 -t rsa

Während des Generierens des SSH-Schlüssels werden Sie aufgefordert, eine Datei zum Speichern des Schlüssels anzugeben. Drücken Sie einfach die Eingabetaste, um die Standarddatei zu verwenden. Anschließend müssen Sie ein Passwort eingeben, um Ihren SSH-Schlüssel zu verschlüsseln. Das Passwort muss mindestens 20 Zeichen lang sein. Der SSH-Schlüssel wird in der Datei .ssh/id_rsa im Home-Verzeichnis gespeichert. Der öffentliche SSH-Schlüssel wird in der Datei .ssh/id_rsa.pub gespeichert.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/matrix/.ssh/id_rsa):  按Enter键
Enter passphrase (empty for no passphrase):   输入一个密码
Enter same passphrase again:   再次输入密码
Your identification has been saved in /home/matrix/.ssh/id_rsa.
Your public key has been saved in /home/matrix/.ssh/id_rsa.pub.
The key fingerprint is:
e1:dc:ab:ae:b6:19:b0:19:74:d5:fe:57:3f:32:b4:d0 matrix@vivid
The key's randomart image is:
+---[RSA 4096]----+
| .. |
| . . |
| . . .. . |
| . . o o.. E .|
| o S ..o ...|
| = ..+...|
| o . . .o .|
| .o . |
| .++o |
+-----------------+

Wenn Sie sich die Datei .ssh/id_rsa ansehen, werden Sie feststellen, dass diese Datei verschlüsselt ist. Das heißt, es wird mit dem von Ihnen eingegebenen Passwort verschlüsselt.

less .ssh/id_rsa

 

2Laden Sie den öffentlichen SSH-Schlüssel auf den Linux-Server hoch

Dies kann mit dem Befehl ssh-copy-id erfolgen.

ssh-copy-id username@remote-server

 

Nach Eingabe des Passworts des Remote-Benutzers wird der öffentliche SSH-Schlüssel automatisch hochgeladen. Der öffentliche SSH-Schlüssel wird in der Datei .ssh/authorized_keys auf dem Remote-Linux-Server gespeichert.

Nachdem der Upload abgeschlossen ist, müssen Sie das Passwort für die SSH-Anmeldung nicht erneut eingeben. Wenn Sie sich jedoch zum ersten Mal mit dem SSH-Schlüssel anmelden, müssen Sie das Verschlüsselungskennwort des SSH-Schlüssels einmal eingeben. (Sie müssen es nur einmal eingeben und werden in Zukunft automatisch angemeldet. Sie müssen das Passwort für den Schlüssel nicht mehr eingeben.)

Bei Verwendung des scp-Befehls zum Übertragen von Dateien ist die Eingabe eines Kennworts nicht erforderlich.

SSH-Schlüsselkenntnisse

Das Linux-System verfügt über ein Schlüsselbundverwaltungsprogramm. Der Schlüsselbund ist durch das Login-Passwort des Benutzers geschützt. Wenn Sie sich beim Linux-System anmelden, wird das Schlüsselbundkennwort automatisch entsperrt, sodass Sie auf den Schlüsselbund zugreifen können. Auch Passwörter für SSH-Schlüssel können im Schlüsselbund gespeichert werden. Wenn Sie sich daher zum ersten Mal mit einem SSH-Schlüssel bei einem Remote-Linux-Server anmelden, müssen Sie das Passwort des SSH-Schlüssels einmal eingeben. Zukünftig müssen Sie bei der Anmeldung mit einem SSH-Schlüssel kein Passwort mehr eingeben. Das Schlüsselprogramm für Ubuntu ist Seahorse.

Ein SSH-Schlüssel ist wie Ihr Identitätsnachweis. Der Remote-Linux-Server verwendet den von Ihnen generierten öffentlichen SSH-Schlüssel zum Verschlüsseln einer Nachricht, und nur Ihr SSH-Schlüssel kann die Nachricht entschlüsseln. Wenn andere also nicht über Ihren SSH-Schlüssel verfügen, können sie die verschlüsselte Nachricht nicht entschlüsseln und sich daher nicht bei Ihrem Linux-Server anmelden.

So einfach ist die Einrichtung der passwortlosen SSH-Anmeldung.

Hinterlasse eine Antwort