Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Wie tausche ich einen SSH-Schlüssel für eine kennwortlose Authentifizierung zwischen Linux-Servern aus?

SSH-Schlüsselaustausch
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Implementieren Sie die SSH-Schlüssel-basierte Authentifizierung unter Linux

SSH (Secured Shell) ist ein Protokoll, das eine kryptografisch gesicherte Verbindung zwischen dem SSH-Client und Remote-Servern herstellt.

Mit SSH können Sie Remote-Server sicher verwalten und verwalten. Dies kann in vielerlei Hinsicht hilfreich sein.

  • Bereitstellung auf mehreren Servern
  • Stoppen / Starten von Diensten aus der Ferne
  • Automation

und all deine Kreativität (hoffentlich) ...

Als Systemadministrator ist dies ein grundlegendes Wissen.

Lassen Sie uns lernen, wie ...

Ich werde einen privaten und einen öffentlichen Schlüssel generieren. Der private Schlüssel sollte auf Ihrem SSH-Client-Computer gespeichert und gesichert sein. Der öffentliche Schlüssel muss auf den Remote-Server kopiert werden, um sich vom SSH-Client-Computer ohne Kennwort bei diesem Server anzumelden.

Sie werden Folgendes lernen.

  • Installieren Sie SSH (nicht erforderlich, wenn bereits installiert)
  • Generieren Sie SSH-Schlüssel
  • Kopieren Sie den SSH-Schlüssel auf einen Remote-Server
  • Melden Sie sich mit SSH beim Remote-Server an

Zu Demonstrationszwecken habe ich 2 Server mit den folgenden IP-Adressen, ein System ist ein Client und der andere ist ein Server, auf dem ich mich über ssh von einem Client-Computer aus anmelden werde.

  • Client (Benutzer -> Geekflare): 192.168.56.102
  • Remote (Benutzer -> Ubuntu): 192.168.56.101

Installing SSH

Stellen Sie sicher, bevor Sie die in diesem Artikel genannten Schritte ausführen openssh-server ist auf den Servern installiert. Wenn es nicht installiert ist, führen Sie die folgenden Befehle aus, um es zu installieren.

sudo apt-get install openssh-server

sudo systemctl enable ssh

sudo systemctl start ssh

Sie können den Befehl ssh ausführen, um zu überprüfen, ob er auf dem System installiert ist oder nicht.

geekflare@geekflare:~$ ssh

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]

           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]

           [-i identity_file] [-J [user@]host[:port]] [-L address]

           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]

           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]

           [-w local_tun[:remote_tun]] destination [command]

Generate SSH Keys

Dies muss auf einem Client-Server erfolgen.

Führen Sie die ssh-keygen Befehl zum Generieren eines SSH-Schlüssels. Drücken Sie einfach die Eingabetaste, wenn Sie nach der Datei, der Passphrase und der gleichen Passphrase gefragt werden. Standardmäßig werden zwei Schlüssel im Verzeichnis ~ / .ssh generiert. Id_rsa ist der private Schlüssel und id_rsa.pub ist der zugeordnete öffentliche Schlüssel.

geekflare@geekflare:~$ ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/home/geekflare/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/geekflare/.ssh/id_rsa.

Your public key has been saved in /home/geekflare/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:3XDm62tzJegGm8oAmFYCyeFZovJOuU42zNgyn9GzH30 geekflare@geekflare

The key's randomart image is:

+---[RSA 2048]----+

|o+..             |

|+o+              |

|oo. .     . o    |

|.. *     . *     |

|  B .   S . o.   |

| O o . .  . ... .|

|+ @ o o . E=.  o |

| B + o + .o.= .  |

|  + ... o. oo+   |

+----[SHA256]-----+

Es werden zwei neue Dateien in generiert ~/.ssh Verzeichnis.

Copy SSH Key to Remote Server

Der private Schlüssel sollte kopiert werden ~/.ssh Ordner auf einem Remote-Server. Die meisten Server sollten diesen Ordner bereits haben. Wenn nicht, müssen Sie einen Ordner erstellen.

Und dazu:

  • Melden Sie sich beim Remote-Server mit dem Benutzer an, mit dem Sie eine Verbindung herstellen möchten. In meinem Fall ist es ubuntu
  • Stellen Sie sicher, dass das aktuelle Arbeitsverzeichnis das Basisverzeichnis des Benutzers ist, und erstellen Sie dann einen .ssh-Ordner. Sie können auch den folgenden Einzelbefehl verwenden, um einen zu erstellen
mkdir -p ~/.ssh

Wenn Sie bereits einen .ssh-Ordner haben, erstellen Sie eine Sicherungskopie davon.

Als nächstes drücken wir den öffentlichen Schlüssel von einem Client-Server.

Führen Sie auf dem Clientcomputer (192.168.56.102) den folgenden Befehl aus, um den öffentlichen Schlüssel auf dem Remote-Server innerhalb eines zu kopieren authorized_keys Datei im SSH-Verzeichnis.

geekflare@geekflare:~$ cat .ssh/id_rsa.pub | ssh ubuntu@192.168.56.101 'cat >> .ssh/authorized_keys'

ubuntu@192.168.56.101's password:

Führen Sie den folgenden Befehl aus, um Berechtigungen für die Datei authorized_keys auf dem Remote-Server festzulegen.

geekflare@geekflare:~$ ssh ubuntu@192.168.56.101 "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"

Großartig, dies kommt zu dem Schluss, dass der Schlüssel ausgetauscht und die Berechtigung festgelegt wurde.

Login to Remote Server using SSH

Lassen Sie uns testen, ob es funktioniert!

Melden Sie sich von einem Client-Computer (192.168.56.101) als Geekflare-Benutzer beim Remote-Server (192.168.56.102) an.

Führen Sie den folgenden Befehl zum Testen aus. Diesmal wird kein Kennwort abgefragt.

geekflare@geekflare:~$ ssh ubuntu@192.168.56.101

Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-151-generic i686)

 * Documentation:  https://help.ubuntu.com

 * Management:     https://landscape.canonical.com

 * Support:        https://ubuntu.com/advantage

346 packages can be updated.

11 updates are security updates.

Last login: Mon Jun 17 00:10:32 2019 from 192.168.56.101

Bitte schön…

Ich habe mich erfolgreich beim Remote-Server angemeldet. Wenn Sie den folgenden Befehl ausführen, werden die IP-Details des Remote-Computers angezeigt.

ubuntu@ubuntu:~$ ifconfig

enp0s3    Link encap:Ethernet  HWaddr 08:00:27:9b:47:86 

          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0

          inet6 addr: fe80::5c62:3267:b752:fe5d/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:20239 errors:0 dropped:0 overruns:0 frame:0

          TX packets:5406 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:22678039 (22.6 MB)  TX bytes:701710 (701.7 KB)

enp0s8    Link encap:Ethernet  HWaddr 08:00:27:a9:4a:6b 

          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0

          inet6 addr: fe80::54a9:761c:9034:21a2/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:330 errors:0 dropped:0 overruns:0 frame:0

          TX packets:197 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:42847 (42.8 KB)  TX bytes:32774 (32.7 KB)

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:997 errors:0 dropped:0 overruns:0 frame:0

          TX packets:997 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:79654 (79.6 KB)  TX bytes:79654 (79.6 KB)

Conclusion

Das Einrichten des SSH-Schlüsselaustauschs ist sehr einfach, wie Sie sehen können. Ich hoffe, dies hilft Ihnen und ist daran interessiert, die Linux-Administration und die Fehlerbehebung zu erlernen Udemy natürlich.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu Linux
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder