SSH oder sichere Schale ist ein nützliches verschlüsselter Protokoll, um Verbindungen zwischen dem Client und dem Server für verschiedene Verwaltungsaufgaben zu sichern. Es unterstützt verschiedene Arten von Authentifizierungssystemen. Öffentliche Schlüsselbasierte Authentifizierung und kennwortbasierte Authentifizierung werden größtenteils verwendet. Die wichtigste Authentifizierung ist sicherer als passwortbasierte Authentifizierung. Authentifizierungsschlüsselpaare für das SSH werden durch das SSH-Keygen-Tool generiert, das für verschiedene Zwecke wie die Authentifizierung des Hosts, die Automatisierung von Anmeldungen usw. verwendet werden kann. Wie dieses Tool in Ubuntu verwendet werden kann, wurde in diesem Tutorial gezeigt.
Syntax:
Die Syntax dieses Befehls hat unten angegeben. Es unterstützt viele Optionen zum Generieren von Authentifizierungsschlüsselpaaren, die später beschrieben wurden.
ssh-keygen [-q] [-b Bits] [-c Kommentar] [-f output_keyfile] [-m Format]
[-t DSA | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | RSA]
[-N new_pasphrase] [-o Option] [-W-Anbieter]
Verschiedene Optionen von SSH-Keygen:
Die Zwecke der Verwendung verschiedener Arten von SSH-Keygen-Optionen werden nachstehend erläutert.
Möglichkeit | Zweck |
---|---|
-A | Es generiert die Host -Tasten mit dem Standarddateipfad der Standardschlüssel, der leeren Passphrase, der Standard -Bits für den Schlüsseltyp und dem Kommentar. |
-B -Bits | Es wird verwendet, um die Anzahl der Bits in dem Schlüssel zu definieren, der erstellt wird. |
-C Kommentar | Es wird verwendet, um den neuen Kommentar zu definieren. |
-C | Es wird verwendet, um die Änderung des Kommentars der öffentlichen und privaten Schlüsseldateien zu beantragen. |
-E Fingerabdruck_Hash | Es wird verwendet, um den Hash -Algorithmus zu definieren, mit dem die Fingerabdrücke angezeigt werden. |
-e | Es wird verwendet, um die private oder öffentliche Schlüsseldatei zu lesen und auf den STDOut zu drucken. |
-F Hostname | [Hostname]: Port | Es wird verwendet, um den jeweiligen Hostnamen mit der optionalen Portnummer in der Datei bekannt_hosts zu durchsuchen. |
-f Dateiname | Es wird verwendet, um den Dateinamen der Schlüsseldatei zu definieren. |
-H | Es wird verwendet, um eine bekannte Datei bekannt zu haben. Es ersetzt alle Hostnamen und Adressen durch die Hashed -Darstellungen in der angegebenen Datei. Der ursprüngliche Inhalt wird in eine Datei mit dem verschoben .altes Suffix. |
-ich | Es wird verwendet, um eine unverschlüsselte private (oder öffentliche) Schlüsseldatei zu lesen. |
-L | Es wird verwendet, um den Inhalt eines oder mehrerer Zertifikate zu drucken. |
-l | Es wird verwendet, um den Fingerabdruck einer bestimmten öffentlichen Schlüsseldatei anzuzeigen. |
-N New_PasPhrase | Es wird verwendet, um die neue Passphrase bereitzustellen. |
-P -Passphrase | Es wird verwendet, um die alte Passphrase zu liefern. |
-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | RSA | Es wird verwendet, um die Art des Schlüssels zu definieren, der erstellt wird. |
Erstellen Sie Tasten mit SSH-Keygen:
Sie können SSH-Schlüsselpaare erstellen, indem Sie SSH-Keygen mit Optionen oder ohne Option ausführen. In diesem Teil dieses Tutorials wurden verschiedene Möglichkeiten zum Erstellen der SSH -Schlüsselpaare gezeigt. Sie müssen sich bei der Servermaschine anmelden, auf der OpenSSH installiert ist, um die Schlüssel zu erstellen
Generieren Sie die Schlüsselpaare ohne Option:
Der folgende Befehl erstellt Schlüsselpaare, ohne eine Option zu verwenden.
$ ssh-keygen
Nachdem Sie den obigen Befehl ausgestellt haben. Hier wurde die Eingabetaste gedrückt. Als nächstes können Sie die Eingabetaste erneut drücken, um das leere Passwort festzulegen oder das Kennwort festzulegen.
Generieren Sie die Schlüsselpaare mit einer einzelnen Option:
Der folgende Befehl generiert die Schlüsselpaare des RSA -Typs im Befehl mit der Option -t.
$ ssh -keygen -t RSA
Wie im vorherigen Befehl können Sie den Dateinamen angeben oder den Standard -Dateinamen zum Speichern der Schlüsselpaare verwenden und das Passwort oder das leere Passwort für die SSH -Verbindung festlegen.
Generieren Sie die Schlüsselpaare mit mehreren Optionen:
Führen Sie den folgenden Befehl aus, um die Schlüsselpaare des RSA -Typs mit 2000 Bit und den Kommentarwert zu generieren, „[email protected]".
$ ssh -keygen -t RSA -B 2000 -c "Mailto: [email protected] "> [email protected]"
Wie im vorherigen Befehl können Sie den Dateinamen angeben oder den Standard -Dateinamen zum Speichern der Schlüsselpaare verwenden und das Passwort oder das leere Passwort für die SSH -Verbindung festlegen. Wenn Sie die Schlüsseldateien generiert haben, bevor Sie den obigen Befehl ausführen, werden Sie aufgefordert, die Schlüsseldatei zu überschreiben oder nicht. Wenn Sie "y" eingeben, wird die zuvor generierte Datei mit den neuen Schlüssel überschrieben.
Kopieren Sie den öffentlichen Schlüssel zum Server:
Führen Sie den folgenden Befehl vom Servergerät aus, um den Servermaschine den öffentlichen Schlüssel hinzuzufügen. Der Befehl kopiert den Schlüssel zum Server und konfiguriert ihn, um den Schlüssel zur Datei autorized_keys hinzuzufügen, um auf den Server zuzugreifen.
$ ssh-copy-id -i ~/.ssh/id_rsa fahmida@fahmida-virtualbox
Die folgende Ausgabe wird angezeigt, wenn der öffentliche Schlüssel nicht zuvor in die Servermaschine hinzugefügt wird.
Ändern Sie die Konfigurationsdatei des Servers:
Sie müssen einige Optionen in der Konfigurationsdatei des Servergeräts aktivieren, wenn Sie die kennwortbasierte Authentifizierung festlegen und die Stammbenutzeranmeldung des Servers ermöglichen möchten. Der Pfad der SSH -Konfigurationsdatei des Servers ist/etc/ssh/sshd_config. Öffnen Sie die Datei in einem beliebigen Texteditor. Führen Sie den folgenden Befehl aus, um die Datei im NANO -Editor zu bearbeiten.
$ sudo nano/etc/ssh/sshd_config
Fügen Sie die Datei mit den folgenden Zeilen hinzu oder ändern Sie die kennwortbasierte Authentifizierung und setzen.
PasswortAuthentication Ja
Erlaubnisrootlogin Ja
Speichern und schließen Sie die Datei. Führen Sie den folgenden Befehl aus, um den SSH -Dienst neu zu starten.
$ sudo systemctl neu starten ssh neu starten
Melden Sie sich vom SSH -Client an:
Melden Sie sich bei der Client -Maschine an, von der Sie eine Verbindung mit dem Server herstellen möchten, um zu überprüfen, ob die SSH -Verbindung funktioniert. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um die Identität der Servermaschine hinzuzufügen.
$ ssh-add
Führen Sie den folgenden SSH -Befehl aus, um eine Verbindung mit dem Servergerät vom Client -Computer herzustellen. Die Kennwortauthentifizierung und die Stammanmeldung wurden in der SSH -Konfigurationsdatei des Servers im vorherigen Teil dieses Tutorials aktiviert. Daher muss der Benutzer das gültige Stammkennwort der Servermaschine bereitstellen, um eine SSH -Verbindung erfolgreich herzustellen.
$ ssh [email protected]
Die folgende ähnliche Ausgabe wird nach der Erstellung einer SSH -Verbindung zum Server vom Client angezeigt.
Abschluss:
In diesem Tutorial wurde das SSH-Keygen verwendet, um SSH-Schlüsselpaar auf unterschiedliche Weise zu generieren. Ich hoffe.