So generieren und verwalten Sie SSH -Tasten unter Linux

So generieren und verwalten Sie SSH -Tasten unter Linux

Das SSH -Protokoll (Secure Shell) bietet die Möglichkeit, verschlüsselte Kommunikation über Computernetzwerke durchzuführen. Typische Operationen, die wir mit dem Protokoll ausführen können. Wenn wir uns auf einem Remote -Computer anmelden (mit dem ssh Das Dienstprogramm zum Beispiel) werden wir aufgefordert, das Kennwort für das von uns verwendete Konto bereitzustellen, um sich anzumelden. Für erweiterte Sicherheit können wir uns für die Verwendung von SSH -Tasten als Anmeldeinformationen entscheiden: Sobald der SSH -Server angemessen konfiguriert ist, müssen wir etwas (das Passwort) wissen, aber auch etwas besitzen (ein Schlüssel). In diesem Tutorial sehen wir, wie Sie SSH -Tasten generieren, verwalten und verwenden können.

In diesem Tutorial lernen Sie:

  • Was ist ein SSH -Tastaturärer
  • Was ist der Unterschied zwischen einem privaten und öffentlichen SSH -Schlüssel und wie viel ist ihre Rolle?
  • So generieren Sie SSH -Tastaturen
  • So ändern Sie das Passwort eines privaten SSH -Schlüssels
  • So übertragen Sie öffentliche Schlüssel auf einen SSH -Server
So generieren und verwalten Sie SSH -Tasten unter Linux

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Verteilung unabhängig
Software OpenSH -Dienstprogramme
Andere Keine weiteren Anforderungen erforderlich
Konventionen # - Erfordert, dass gegebene Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden können sudo Befehl
US

Wie SSH -Tastaturen funktionieren

SSH -Tasten werden als Anmeldeinformationen verwendet, häufig anstelle von einfachen klaren Textkennwörtern. Sie arbeiten paarweise: Wir haben immer eine öffentlich und ein Privatgelände Taste. Der private Schlüssel muss auf dem lokalen Computer bleiben, der als Kunde fungiert entschlüsseln Informationen und es darf niemals gemeinsam genutzt werden. Der öffentliche Schlüssel hingegen wird verwendet, um Daten zu verschlüsseln und muss auf dem Remote -Server kopiert werden (sein Inhalt wird in der kopiert ~/.ssh/autorized_keys Datei im $ Home -Verzeichnis des Benutzer.

Die Möglichkeit, SSH-Keys als Anmeldeinformationen zu verwenden PubkeyAuthentication Option zu Ja im /etc/ssh/sshd.Konfiguration Datei. Sowohl klare Textkennwörter als auch öffentliche Schlüssel können gleichzeitig als Authentifizierungsmethoden zulässig sein, oder beispielsweise könnte man sich entscheiden, nur über öffentliche Schlüssel Zugriff zu ermöglichen.

Die Tools und Dienstprogramme, die wir in diesem Tutorial verwenden, werden standardmäßig in allen wichtigen Linux -Verteilungen im Rahmen der OpenSSH -Software -Suite installiert.



Erzeugen Sie einen SSH -Tastarir

Die Erzeugung eines SSH -Tastaturs ist eine sehr einfache Operation: Wir müssen nur die verwenden, um die zu verwenden ssh-keygen Dienstprogramm. Der einfachste Weg, die Operation auszuführen, besteht darin, den Befehl ohne Argument oder Option aufzurufen:

$ ssh-keygen generieren öffentlich/privates RSA-Schlüsselpaar. Geben Sie die Datei ein, in der der Schlüssel speichert werden kann (/home/egdoc/.SSH/ID_RSA): Geben.ssh/id_rsa Ihr öffentlicher Schlüssel wurde in/home/egdoc/gespeichert/.ssh/id_rsa.Pub the Key Fingerabdruck lautet: SHA256: Jrcj3a3eq4wo/lx4vaccpcKyayu0Aai80Emcda7m5dk egdoc@fingolfin Das RandomArt-Bild des Schlüssels ist: + --- [RSA 3072] ---- + | =.+.Ö . | | * = o… | | E… o + . | | . Ö+. Ö + .| | Betriebssystem. + o o.| | o + o.+ o | | . o o.ob.O… | | o o .B.B . | | +… Oo = . | +---- [SHA256]-----+ 

Lassen Sie uns analysieren, was passiert, wenn Sie den Befehl auf diese Weise aufrufen. Das erste, wonach wir gefragt werden, ist, wo die generierten Schlüssel gespeichert werden sollten: Standardmäßig wird der generierte private Schlüssel aufgerufen id_rsa, und der Name der Öffentlichkeit wird durch Hinzufügen des Hinzufügens erhalten .Pub Erweiterungen dazu. Beide werden standardmäßig in der erstellt ~/.ssh Verzeichnis; Wir sind jedoch frei, alternative Namen und Ort zu liefern.

Das zweite, was wir verlangt haben, ist es, a zu liefern Passphrase: Es wird verwendet, um den privaten Schlüssel zu sichern. Wir können entweder Passphrase eingeben oder einfach die Eingabetaste drücken und das Feld leer lassen. Im ersten Fall werden wir aufgefordert, das Kennwort anzugeben, das wir jedes Mal verwendet haben, wenn wir versuchen, den Schlüssel zu verwenden. Wenn wir das Feld leer lassen, können wir stattdessen eine passwortlose Anmeldung auf dem Server erreichen: Dies könnte ein Sicherheitsrisiko darstellen, da jeder, der Zugriff auf den Schlüssel hat, uns leicht ausbleibt. Andererseits wird dieses Setup normalerweise zur Durchführung von unbeaufsichtigten Vorgängen über SSH verwendet, da beispielsweise geplante Backups.

Nachdem wir ein Passwort angegeben haben, werden die Schlüssel generiert und die Schlüsselfingerabdruck Und RandomArt -Bild werden auf dem Bildschirm angezeigt. Es ist fertig! Zu diesem Zeitpunkt haben wir unseren SSH -Tastaturpaar.

Ändern Sie den Schlüsseltyp und die Bitgröße

Standardmäßig, wenn keine spezifischen Optionen an die übergeben werden ssh-keygen Befehl, an RSA Schlüsselpaar wird mit einer Größe von erzeugt 3072 Bits. Um einen alternativen Schlüsseltyp zu verwenden, müssen wir die verwenden -T Option von ssh-keygen und geben Sie die Art des Schlüssels an, die wir als Argument verwenden möchten. Die verfügbaren Schlüsseltypen sind:

  • DSA
  • ECDSA
  • ecdsa-sk
  • ed25519
  • ed25519-sk
  • RSA

Jeder Schlüsseltyp hat einen Standard in der Bitgröße. DSA -Schlüssel zum Beispiel muss genau von ermittelt werden 1024 Bits, während für ECDSA -Schlüssel, wie im Handbuch angegeben:

-B Flag bestimmt die Schlüssellänge, indem Sie aus einer der elliptischen Kurvengrößen auswählen: 256, 384 oder 521 Bits.

Andere Schlüsselarten wie ECDSA-SK, ED25519 und ED25519-SK haben eine feste Länge, die nicht geändert werden kann.

Nach Möglichkeit können wir die Bitgröße verwenden, die für die Schlüsselgenerierung verwendet werden sollte -B Option der ssh-keygen Nutzen und die Anzahl der Bitgröße als Argument bestehen. Nehmen wir an, wir möchten einen RSA -Schlüssel von generieren 4096 Bits (anstelle des Standards 3072); Wir würden rennen:

$ ssh -keygen -b 4096 


Geben Sie den Pfad der Schlüssel nicht-interaktiv an

Wie wir im Beispiel gesehen haben, wird der für die generierte Schlüssel verwendete Standardname nicht sonst angegeben id_rsa. Natürlich können wir es auf Anfrage interaktiv ändern, aber was ist, wenn wir es im Voraus zur Verfügung stellen möchten? Nun, in diesem Fall können wir anrufen ssh-keygen zusammen mit dem -F Option und übergeben Sie den Dateinamen, um den Schlüssel als Argument zu verwenden. Angenommen, wir möchten, dass unsere Schlüssel als gespeichert werden als ~/.ssh/linuxconfig_rsa (privat) und ~/.ssh/linuxconfig_rsa.Pub (öffentlich);
Wir würden rennen:

$ ssh -keygen -f ~/.ssh/linuxconfig_rsa 

Ändern eines privaten Schlüsselkennworts

Wie wir bereits gesehen haben, haben wir beim Erstellen eines SSH -Tastatur. Was ist, wenn wir dieses Passwort irgendwann in der Zukunft ändern möchten?? Wie können wir das Passwort eines privaten Schlüssels ändern??

Es ist einfach! Alles was wir tun müssen, ist, das aufzurufen ssh-keygen Dienstprogramm mit dem -P Möglichkeit. Wenn wir den Befehl mit dieser Option aufrufen, werden wir zuerst aufgefordert, den Pfad des privaten Schlüssels anzugeben, den wir ändern möchten gebeten, zweimal die neue Passphrase einzugeben:

$ ssh -keygen -p geben Sie die Datei ein, in der der Schlüssel ist (/home/egdoc/.ssh/id_rsa): Geben. 

Der Standardschlüssel, der für die Änderung des Kennworts ausgewählt wird, ist ~/.ssh/id_rsa, Genau wie bei der Erstellung. Wenn wir den Pfad eines privaten Schlüssels direkt und nicht-interaktiv anbieten möchten, können wir das wieder verwenden -F Option und passieren
Der Schlüsselweg als Argument, zum Beispiel:

$ ssh -keygen -p -f ~/.ssh/id_rsa 


Laden des öffentlichen Schlüssels auf dem Server

Um die SSH -Tasten zu verwenden, die wir als Authentifizierungsmethode auf einem Remote -Server generiert haben, müssen wir unseren öffentlichen Schlüssel hochladen. Der OpenSSH -Werkzeugsatz bietet ein Dienstprogramm, das speziell für diese Aufgabe entwickelt wurde:
ssh-copy-id. Hier ist ein Beispiel für die Verwendung. So kopieren Sie den Standard -SSH -Schlüssel id_rsa.Pub Auf einem Remote -Server würden wir ausführen:

$ ssh-copy-id -i ~/.ssh/id_rsa.Pub [email protected] 

Was wir im obigen Beispiel getan haben, ist ziemlich einfach. Wir haben die aufgerufen ssh-copy-id Dienstprogramm mit dem -ich Option: Mit dieser Option können wir den verwendeten öffentlichen Schlüssel angeben. Wir übergeben seinen Pfadschlüssel als Optionsargument (die .Pub Suffix wird automatisch hinzugefügt, wenn nicht vorhanden). Das Hauptargument, das wir vorgelegt haben, ist stattdessen der Benutzer, den wir uns als (optional) zusammen mit der IP -Adresse des Servers anmelden möchten.

Die Ausgabe des obigen Befehls ist etwas ähnlich wie folgt:

/usr/bin/ssh-copy-ID: Info: Quelle der Schlüssel (en) zu installieren: "/home/egdoc/.ssh/id_rsa.Pub "/usr/bin/ssh-copy-ID: Info: Versuch, sich mit den neuen Schlüssel (en) anzumelden, um alle bereits installiert zu filtern/usr/bin/ssh-copy-id: Info: 1 Schlüssel (s) müssen noch installiert werden - wenn Sie jetzt aufgefordert werden, die neuen Schlüssel EGDOC@192 zu installieren.168.0.39s Passwort: 

Damit der Schlüssel auf dem SSH -Server installiert werden soll. Nachdem wir es getan haben, wenn alles wie erwartet läuft, werden wir die folgende Antwort sehen:

Anzahl der Tasten hinzugefügt: 1 Versuchen Sie jetzt, sich in die Maschine anzumelden, mit: "ssh '[email protected] '"und prüfen Sie, ob nur die von Ihnen gewünschten Schlüssel hinzugefügt wurden. 

Wenn wir uns nicht sicher sind, welche Schlüssel auf dem Remote -Server kopiert werden, können wir starten ssh-copy-id mit dem -N Option, a durchzuführen Probelauf: Die Schlüssel werden nicht auf dem Server installiert. Stattdessen werden diejenigen, die kopiert werden, auf dem Bildschirm gemeldet werden.

Der vom SSH -Server verwendete Standardport ist 22; Manchmal konnte sich der Systemadministrator jedoch entscheiden, ihn zu ändern, nur um die gern die gern Brute -Force -Angriffe zu vermeiden. In solchen Fällen müssen wir vier unsere SSH -Verbindung zur Arbeit verwenden, die wir verwenden müssen -P (kurz für --Hafen) Option beim Aufrufen der ssh-copy-id Befehl und übergeben den Port, der für die Verbindung als Argument verwendet werden sollte. Angenommen, der verwendete Port ist 15342, Zum Beispiel würden wir rennen:

ssh-copy-id -i ~/.ssh/id_rsa.Pub -p 15342 [email protected] 

Schlussfolgerungen

In diesem Tutorial haben wir die Grundlagen von SSH -Schlüssel gelernt: Wir haben gesehen. Wir haben gesehen. Wir haben auch gesehen, wie ein SSH -privater Schlüssel durch ein Passwort geschützt werden kann und wie wir ihn ändern können. Schließlich haben wir gelernt, wie wir die verwenden können ssh-copy-id Dienstprogramm zum Kopieren eines angegebenen öffentlichen Schlüssels auf dem Zielserver.

Verwandte Linux -Tutorials:

  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu installieren auf Ubuntu 20.04
  • So richten Sie einen OpenVPN -Server auf Ubuntu 20 ein.04
  • Mastering -Bash -Skriptschleifen beherrschen
  • Wie man drahtlose Verbindungen mit IWD unter Linux verwaltet
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Kann Linux Viren bekommen?? Erforschung der Verwundbarkeit von Linux…
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Hung Linux System? Wie man zur Befehlszeile entkommt und…
  • FTP -Clientliste und -installation auf Ubuntu 22.04 Linux…