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

SSH – Generieren und Arbeiten mit SSH-Schlüsseln

SSH ist ein sicheres Protokoll, das als primäres Mittel zur Fernverbindung mit Linux-Servern verwendet wird. Es bietet eine textbasierte Schnittstelle, indem es eine Remote-Shell erzeugt. Nach dem Verbinden werden alle Befehle, die Sie in Ihrem lokalen Terminal eingeben, an den Remote-Server gesendet und dort ausgeführt.

Authentifizierung

Clients authentifizieren sich im Allgemeinen entweder mit Passwörtern oder SSH-Schlüsseln. Passwörter sind weniger sicher, daher werden SSH-Schlüssel immer empfohlen.

Um sich mit SSH-Schlüsseln zu authentifizieren, muss ein Benutzer ein SSH-Schlüsselpaar auf seinem lokalen Computer haben. Auf dem Remote-Server muss der öffentliche Schlüssel in eine Datei im Home-Verzeichnis des Benutzers unter ~/.ssh/authorized_keys kopiert werden . Diese Datei enthält eine Liste öffentlicher Schlüssel, einen pro Zeile, die berechtigt sind, sich bei diesem Konto anzumelden.

Generieren eines SSH-Schlüsselpaars

Pub/private Schlüsselkombination generieren

ssh-keygen

# With options (Larger Number of Bits 4096 and file name)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix

# Explicit comment
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix -C citizix_key

Die obigen Befehle generieren ein RSA-SSH-Schlüsselpaar. Wenn der Dateispeicherort nicht angegeben ist, befinden sie sich in .ssh verstecktes Verzeichnis im Home-Verzeichnis Ihres Benutzers. Die Standarddateien sind:

  • ~/.ssh/id_rsa :Der private Schlüssel. TEILEN SIE DIESE DATEI NICHT!
  • ~/.ssh/id_rsa.pub :Der zugehörige öffentliche Schlüssel. Dies kann ohne Folgen frei geteilt werden.

Entfernen oder Ändern der Passphrase auf einem privaten Schlüssel

Wenn Sie eine Passphrase für Ihren privaten Schlüssel generiert haben und diese ändern oder entfernen möchten, verwenden Sie die folgenden Befehle:

ssh-keygen -p

ssh-keygen -p -f ~/.ssh/id_citizix

Geben Sie die alte Passphrase ein, die Sie ändern möchten. Sie werden dann zur Eingabe einer neuen Passphrase aufgefordert, oder Sie können einfach die Eingabetaste drücken, um sie leer zu lassen.

SSH-Schlüssel-Fingerabdruck prüfen

Jedes SSH-Schlüsselpaar hat einen einzigen kryptografischen „Fingerabdruck“, der zur eindeutigen Identifizierung der Schlüssel verwendet werden kann. Um den Fingerabdruck eines SSH-Schlüssels herauszufinden, geben Sie Folgendes ein:

ssh-keygen -l

ssh-keygen -l -f ~/.ssh/id_citizix

Kopieren Ihres öffentlichen SSH-Schlüssels auf einen Server

Das Kopieren des öffentlichen Schlüssels auf einen entfernten Server ermöglicht die Anmeldung ohne Passwort:

# This will prompt for a password
ssh-copy-id [email protected]_host

Nachdem Sie das Passwort eingegeben haben, wird der Inhalt Ihres Schlüssels ~/.ssh/id_rsa.pub an das Ende der Datei ~/.ssh/authorized_keys des Benutzerkontos angehängt. Sie können sich jetzt ohne Passwort anmelden:ssh [email protected]_host

Kopieren Ihres öffentlichen SSH-Schlüssels auf einen Server ohne SSH-Copy-ID

Wenn Sie das Dienstprogramm ssh-copy-id nicht zur Verfügung haben, aber dennoch passwortbasierten SSH-Zugriff auf den Remote-Server haben, können Sie den Inhalt Ihres öffentlichen Schlüssels auf andere Weise kopieren.

  1. Kopieren Sie den Inhalt an das Ende des ~/.ssh/authorized_keys des Remote-Servers Datei.

  2. Sie können den Inhalt des Schlüssels ausgeben und an den ssh-Befehl weiterleiten. An ~/.ssh/authorized_keys anhängen Datei.

    cat ~/.ssh/id_rsa.pub | ssh [email protected]_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Mehr Hacks

Öffentlichen SSH-Schlüssel aus einem privaten Schlüssel generieren:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

Ausführen eines einzelnen Befehls auf einem Remote-Server

ssh [email protected]_host command_to_run

Anmeldung bei einem Server mit einem anderen Port

ssh -p port_num [email protected]_host

Verwendung einer Konfigurationsdatei:

# File ~/.ssh/config
Host remote_alias
    HostName remote_host
    Port port_num

Hinzufügen Ihrer SSH-Schlüssel zu einem SSH-Agenten, um die Eingabe der Passphrase zu vermeiden

Wenn Sie eine Passphrase auf Ihrem privaten SSH-Schlüssel haben, werden Sie jedes Mal aufgefordert, die Passphrase einzugeben, wenn Sie damit eine Verbindung zu einem Remote-Host herstellen.

Um dies nicht wiederholt tun zu müssen, können Sie einen SSH-Agenten ausführen. Dieses kleine Dienstprogramm speichert Ihren privaten Schlüssel, nachdem Sie die Passphrase zum ersten Mal eingegeben haben. Es ist für die Dauer Ihrer Terminalsitzung verfügbar, sodass Sie sich in Zukunft ohne erneute Eingabe der Passphrase verbinden können.

Um den SSH-Agenten zu starten, geben Sie Folgendes in Ihre lokale Terminalsitzung ein:

eval $(ssh-agent)

Fügen Sie nun Ihren privaten Schlüssel zum Agenten hinzu, damit dieser Ihren Schlüssel verwalten kann:

ssh-add

ssh-add -f ~/.ssh/id_citizix

Sie müssen Ihre Passphrase eingeben (falls eine festgelegt ist). Anschließend wird Ihre Identitätsdatei zum Agenten hinzugefügt, sodass Sie sich mit Ihrem Schlüssel anmelden können, ohne die Passphrase erneut eingeben zu müssen.

Weiterleitung Ihrer SSH-Anmeldeinformationen zur Verwendung auf einem Server

Wenn Sie sich von einem anderen Server aus ohne Passwort mit einem Server verbinden möchten, müssen Sie Ihre SSH-Schlüsselinformationen weiterleiten. Dadurch können Sie sich über den Server, mit dem Sie verbunden sind, bei einem anderen Server authentifizieren, indem Sie die Anmeldeinformationen auf Ihrem lokalen Computer verwenden.

Sie müssen Ihren SSH-Agenten gestartet und Ihren SSH-Schlüssel zum Agenten hinzugefügt haben. Verbinden Sie sich dann mit der Option -A mit dem ersten Server um Ihre Zugangsdaten für diese Sitzung an den Server weiterzuleiten

ssh -A [email protected]_host

Linux
  1. So verwenden Sie SSH-Schlüssel mit Plesk

  2. So generieren Sie ein SSH-Schlüsselpaar (mit Beispielen)

  3. Ssh – Der Unterschied zwischen einem Openssh-Schlüssel und einem Putty-Schlüssel?

  4. ssh-Schlüssel ssh-agent bash und ssh-add

  5. Generieren Sie ein SSH-Paar mit AES-256-CBC

So richten Sie SSH-Schlüssel unter Ubuntu 20.04 ein

Linux-Grundlagen:So erstellen und installieren Sie SSH-Schlüssel auf der Shell

SSH-Schlüsselverwaltung mit privacyIDEA

So verwenden Sie einen SSH-Schlüssel mit Nicht-Root-Benutzern

Generieren Sie RSA-Schlüssel mit SSH mithilfe von PuTTYgen

Melden Sie sich unter Linux und macOS mit einem privaten SSH-Schlüssel an