GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So fügen Sie dem Server einen öffentlichen SSH-Schlüssel hinzu

Public-Key-Authentifizierung ermöglicht Ihnen den Zugriff auf einen Server über SSH ohne Passwort. Hier sind zwei Methoden, um den öffentlichen SSH-Schlüssel auf den Server zu kopieren.

Ich glaube, Sie verstehen das grundlegende SSH-Konzept. Auf Ihrem Linux-Server ist ssh aktiviert. Sie haben ssh-Schlüssel auf Ihrem PC generiert. Jetzt möchten Sie Ihren öffentlichen Schlüssel auf die autorisierten Schlüssel des Servers hochladen, damit Sie darauf zugreifen können, ohne ständig Ihr Kontopasswort eingeben zu müssen.

Dieses kurze Tutorial zeigt Ihnen zwei Methoden, um dem Server einen öffentlichen SSH-Schlüssel hinzuzufügen.

Anforderungen

Bevor Sie das sehen, lassen Sie uns klarstellen, was Sie bereits haben sollten:

  • Auf Ihrem Zielserver sollte ssh aktiviert sein
  • Sie sollten öffentliche und private SSH-Schlüssel generiert haben (verwenden Sie einfach den Befehl ssh-keygen -t rsa )
  • Sie sollten ein Benutzerkonto und ein Passwort auf dem Server haben. Sogar das Root-Konto reicht aus.
  • Sie sollten die IP-Adresse des Servers kennen

Nachdem Sie nun die vier oben genannten Anforderungen erfüllt haben, sehen wir uns an, wie die Authentifizierung mit öffentlichem Schlüssel verwendet wird.

Die Authentifizierung erfolgt pro Benutzerbasis, sodass der öffentliche Schlüssel in das Zuhause des beabsichtigten Benutzers gelangt.

Methode 1:Kopieren Sie den SSH-Schlüssel automatisch auf den Server

Bei der ersten Methode kopiert der Endbenutzer den öffentlichen Schlüssel seines PCs in die Liste der autorisierten Schlüssel auf dem Remote-Server.

Hier gehe ich davon aus, dass Sie sich mit ssh [email protected]_of_server beim Remote-Server anmelden konnten. Es fragt nach dem Passwort Ihres Kontos und Sie betreten den Server.

Wenn Sie Ihren öffentlichen Schlüssel zum Server hinzufügen, sollten Sie sich anmelden können, ohne ständig das Passwort eingeben zu müssen.

OpenSSH bietet einen praktischen Tool-Aufruf namens ssh-copy-id zum Kopieren von öffentlichen ssh-Schlüsseln auf entfernte Systeme. Es erstellt sogar erforderliche Verzeichnisse und Dateien.

Wie ich bereits erwähnt habe, sollten Sie den Benutzernamen und das Passwort des Servers kennen, auf den Sie über die Public-Key-Authentifizierung zugreifen möchten.

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_ADDRESS_OF_THE_SERVER

Geben Sie bei Aufforderung das Kennwort für Ihr Benutzerkonto auf dem Remote-Server ein. Ihr öffentlicher Schlüssel sollte automatisch in den entsprechenden Ordner auf dem Remote-Server kopiert werden.

Ich habe ~/.ssh/id_rsa.pub verwendet, da dies der Standardspeicherort für den öffentlichen SSH-Schlüssel ist. Wenn Sie es an einem anderen Ort haben, sollten Sie das im obigen Befehl verwenden.

Methode 2:Kopieren Sie den öffentlichen SSH-Schlüssel manuell auf den Server

Die erste Methode hatte die Aktion auf der Benutzerseite. Nehmen wir an, Sie sind der Systemadministrator und Ihr Server erlaubt keine SSH-Anmeldung per Passwort. Die einzige Möglichkeit, auf den Server zuzugreifen, ist die Authentifizierung mit öffentlichem SSH-Schlüssel.

In einem solchen Fall können Sie den Endbenutzer bitten, seinen öffentlichen Schlüssel bereitzustellen. Jetzt können Sie das Verzeichnis .ssh/authorized_keys erstellen und dann den öffentlichen Schlüssel hierher kopieren.

Lassen Sie mich die Schritte zeigen.

Schritt 1:Holen Sie sich den öffentlichen Schlüssel

Bitten Sie den Endbenutzer, den öffentlichen Schlüssel bereitzustellen, indem Sie den folgenden Befehl eingeben:

cat ~/.ssh/id_rsa.pub

Es wird eine lange zufällige Zeichenfolge angezeigt, die mit ssh-rsa:

beginnt
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP [email protected]

Sie können diesen Text per E-Mail oder Messaging-Tools erhalten. Normalerweise sollte das kein Problem sein.

Schritt 2:Erstellen Sie ein ssh-Verzeichnis im Home-Verzeichnis des Benutzers (als sysadmin )

Denken Sie daran, dass Sie diese neuen Verzeichnisse und Dateien im Home-Verzeichnis des Endbenutzers erstellen müssen, nicht in Ihrem eigenen (root/sysadmin).

mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys

Öffnen Sie nun diese Datei /home/user_name/.ssh/authorized_keys mit einem Texteditor wie Vim und fügen Sie hier den öffentlichen Schlüssel des Benutzers hinzu:

vim /home/user_name/.ssh/authorized_keys

Speichern und schließen Sie die Datei. Es ist fast fertig.

Schritt 3:Richten Sie die entsprechende Berechtigung für die Datei ein

Es ist sehr wichtig, dass die entsprechende Dateiberechtigung für die SSH-Datei vorhanden ist. Andernfalls werden Fehler wie Permission denied (publickey) angezeigt.

Stellen Sie zunächst sicher, dass Sie die richtigen Dateiberechtigungen festlegen:

chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys

Sie haben diese Datei entweder mit root oder Ihren eigenen Administratorkonten für einen anderen Benutzer erstellt. Sie müssen den Besitz auf den Benutzer ändern:

chown -R username:username /home/username/.ssh

Nun, da dies erledigt ist, können Sie den Endbenutzer bitten, sich beim Server anzumelden.

Lassen Sie mich wissen, wenn Sie auf Probleme stoßen oder Vorschläge zu diesem Thema haben.


Linux
  1. So generieren Sie einen SSH-Schlüssel in Windows 10

  2. So richten Sie SSH-Schlüssel ein

  3. So verbinden Sie sich mit plink und cmd und öffentlichem Schlüssel mit dem SSH-Server

  4. Ssh – Bei einem privaten Ssh-Schlüssel, wie kann man den öffentlichen Schlüssel wiederherstellen?

  5. Wie kann man mit einem anderen Server per SSH auf einen Server zugreifen?

So fügen Sie einem Ubuntu-Server eine private IP hinzu

So führen Sie SSH zum Server über Linux

So fügen Sie einem Debian-Server eine private IP hinzu

Wie füge ich meinen SSH-Schlüssel zu Github/Bitbucket hinzu?

So fügen Sie dem VS-Code einen SSH-Schlüssel hinzu und stellen eine Verbindung zu einem Host her

Öffentlichen Schlüssel zur Datei known_hosts hinzufügen