Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Linux und Sicherheit Zuletzt aktualisiert: September 24, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

Implementierung der SSH-Schlüsselauthentifizierung unter Linux

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

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

  • Einsatz mehrerer Server
  • Dienste aus der Ferne stoppen/starten
  • Automatisierung

und Ihre ganze Kreativität (hoffentlich).

Als Systemadministrator sollten Sie diese grundlegenden Dinge wissen

Lassen Sie uns lernen, wie...

Ich werde einen privaten Schlüssel und einen öffentlichen Schlüssel erzeugen. Der private Schlüssel sollte auf Ihrem ssh-Client-Rechner gespeichert werden und muss sicher aufbewahrt werden. Der öffentliche Schlüssel muss auf den entfernten Server kopiert werden, damit Sie sich vom SSH-Client-Rechner aus bei diesem Server anmelden können, ohne dass ein Passwort erforderlich ist.

Sie werden Folgendes lernen

  • SSH installieren (nicht erforderlich, wenn bereits installiert)
  • SSH-Schlüssel generieren
  • SSH-Schlüssel auf einen entfernten Server kopieren
  • Sich mit SSH auf dem entfernten Server anmelden

Zu Demonstrationszwecken habe ich 2 Server mit den unten aufgeführten IP-Adressen, ein System ist ein Client und der andere ein Server, auf dem ich mich über SSH von einem Client-Rechner aus anmelden werde

  • Client (Benutzer -> geekflare) : 192.168.56.102
  • Remote (Benutzer -> ubuntu) : 192.168.56.101

Installieren von SSH

Bevor Sie die in diesem Artikel beschriebenen Schritte ausführen, stellen Sie sicher, dass openssh-server auf den Servern installiert ist. Wenn er nicht installiert ist, führen Sie die folgenden Befehle aus, um ihn 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]

SSH-Schlüssel generieren

Dies muss auf einem Client-Server durchgeführt werden

Führen Sie den Befehl ssh-keygen aus, um einen SSH-Schlüssel zu erzeugen. Drücken Sie einfach die Eingabetaste, wenn Sie nach der Datei, der Passphrase und derselben Passphrase gefragt werden. Standardmäßig wird ein Schlüsselpaar im Verzeichnis ~/.ssh erzeugt. Id_rsa ist der private Schlüssel und id_rsa.pub ist der zugehörige öffentliche Schlüssel

geekflare@geekflare:~$ ssh-keygen

Erzeugt öffentliches/privates rsa-Schlüsselpaar.

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

Geben Sie die Passphrase ein (leer, wenn keine Passphrase vorhanden ist):

Geben Sie dieselbe Passphrase erneut ein:

Ihre Identifikation wurde in /home/geekflare/.ssh/id_rsa.

Ihr öffentlicher Schlüssel wurde in /home/geekflare/.ssh/id_rsa.pub gespeichert.

Der Fingerabdruck des Schlüssels lautet:

SHA256:3XDm62tzJegGm8oAmFYCyeFZovJOuU42zNgyn9GzH30 geekflare@geekflare

Das Zufallsbild des Schlüssels lautet:

 ---[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 im Verzeichnis ~/.ssh erzeugt

SSH-Schlüssel auf den entfernten Server kopieren

Kopieren Sie den privaten Schlüssel in den Ordner ~/.ssh auf einen entfernten Server. Auf den meisten Servern sollte dieser Ordner bereits vorhanden sein, andernfalls müssen Sie einen Ordner erstellen.

Und so gehen Sie vor

  • Melden Sie sich auf dem entfernten Server mit dem Benutzer an, mit dem Sie verbunden werden möchten. In meinem Fall ist es ubuntu
  • Vergewissern Sie sich, dass das aktuelle Arbeitsverzeichnis das Heimatverzeichnis des Benutzers ist und erstellen Sie dann einen .ssh-Ordner. Sie können auch den folgenden Befehl verwenden, um einen solchen zu erstellen
mkdir -p ~/.ssh

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

Als Nächstes werden wir den öffentlichen Schlüssel von einem Client-Server aus übertragen

Führen Sie auf dem Client-Rechner (192.168.56.102) den folgenden Befehl aus, um den öffentlichen Schlüssel auf den Remote-Server in eine authorized_keys-Datei im Verzeichnis .ssh zu kopieren

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

Das Passwort von ubuntu@192.168.56.101

Führen Sie den folgenden Befehl aus, um die 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, der Schlüssel ist ausgetauscht und die Berechtigungen sind alle gesetzt.

Anmeldung beim Remote Server über SSH

Lassen Sie uns testen, ob es funktioniert!

Melden Sie sich von einem Client-Rechner (192.168.56.102) als geekflare-Benutzer beim Remote-Server (192.168.56.101) an

Führen Sie zum Testen den folgenden Befehl aus, der diesmal nicht nach dem Passwort fragt

geekflare@geekflare:~$ ssh ubuntu@192.168.56.101

Willkommen bei Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-151-generic i686)

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

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

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

346 Pakete können aktualisiert werden.

11 Updates sind Sicherheitsupdates.

Letzte Anmeldung: Mon Jun 17 00:10:32 2019 von 192.168.56.101

Hier ist es...

Ich habe mich erfolgreich beim Remote-Server angemeldet. Wenn Sie den folgenden Befehl ausführen, erhalten Sie die IP-Details des entfernten Rechners

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 Pakete:20239 Fehler:0 dropped:0 overruns:0 frame:0

 TX Pakete: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 Pakete: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)

Schlussfolgerung

Die Einrichtung des SSH-Schlüsselaustauschs ist sehr einfach, wie Sie sehen können. Ich hoffe, das hilft Ihnen und wenn Sie sich für Linux-Administration und Fehlerbehebung interessieren, dann schauen Sie sich diesen Udemy-Kurs an.

  • Avi
    Autor
    Avi ist ein Technik-Enthusiast mit Fachkenntnissen in Trendtechnologien wie DevOps, Cloud Computing, Big Data und vielen mehr. Seine Leidenschaft ist es, Spitzentechnologien zu lernen und sein Wissen mit anderen zu teilen, indem er... mehr lesen
Dank an unsere Sponsoren
Weitere gute Lektüre zu Linux
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder