Ich beginne zu verstehen, wie RSA- und Public / Private Key-Systeme funktionieren, und ich frage mich, wo mein privater und öffentlicher SSH-Schlüssel gespeichert sind. Wenn ich zu meinem Ausgangsverzeichnis gehe und mein .ssh-Verzeichnis (cd .ssh) durchsuche, wird nur die Datei "known_hosts" angezeigt, die vermutlich die öffentlichen Schlüssel verschiedener bekannter Remote-SSH-Server enthält.
Wo finde ich diese Schlüssel? Ich kann mich übrigens nicht einmal daran erinnern, sie erstellt zu haben, aber da ich bereits zuvor SSH-Verbindungen hergestellt habe, müssen sie sich irgendwo befinden.
Ich verwende OpenSSH_5.2p1 mit MAC OS 10.6.
Vielen Dank!
publickey
ist nur eine mögliche Authentifizierungsmethode von vielen; Wenn Sie sich einfach mitpassword
oder angemeldet habenkeyboard-interactive
, wurde das Passwort selbst gesendet. (Hinweis: Verwechseln Sie nicht den Benutzerschlüssel, denIhre persönlichen öffentlichen und privaten SSH-Schlüssel werden normalerweise gespeichert in:
Oder sie könnte sein ,
id_rsa
undid_rsa.pub
wenn Sie RSA - Schlüssel erstellt , anstatt DSA - Schlüssel (OpenSSH unterstützt beide Formen).Die Tatsache, dass Sie zuvor SSH-Verbindungen hergestellt haben, bedeutet jedoch nicht, dass Sie SSH-Schlüssel haben. Wenn der
ssh
Befehl Ihren persönlichen Schlüssel nicht finden kann, werden Sie zur Eingabe eines Kennworts für das ferne System aufgefordert. Dies ist weniger sicher als die Verwendung von Schlüsseln.Normalerweise sollten Sie Ihren privaten SSH-Schlüssel mit einer Passphrase erstellen. Wenn Sie es ohne eine Passphrase erstellen, kann sich jemand als Sie ausgeben, der eine Kopie Ihres privaten Schlüssels erhält.
ssh-agent
Mit dieser Option können Sie einen Schlüssel mit einer Passphrase verwenden, ohne die Passphrase bei jeder Verwendung erneut eingeben zu müssen.quelle
Wenn Sie nicht ein Schlüsselpaar erstellt haben, werden Sie wahrscheinlich nicht haben ein.
Der SSH2-Verkehr wird mit einem symmetrischen Sitzungsschlüssel verschlüsselt , der mithilfe von DH-, ECDH-Algorithmen oder GSSAPI-Schlüsselaustausch erstellt wird. Weder der Hostschlüssel noch der Benutzerschlüssel werden zum Verschlüsseln von Daten verwendet. Der einzige Zweck ist die Authentifizierung .
Denken Sie jetzt daran, dass SSH mehrere Authentifizierungsmethoden unterstützt : Zusätzlich
publickey
akzeptieren fast alle Server die einfachepassword
und / oderkeyboard-interactive
, bei der keine Schlüsselerzeugung oder -verwendung stattfindet - das Kennwort wird einfach zur Überprüfung an den Remote-Server gesendet.Mit anderen Worten: "Da ich ssh-Verbindungen bereits hergestellt habe, müssen sie sich irgendwo befinden" ist falsch - das Benutzerschlüsselpaar ist nicht erforderlich, um Verbindungen herzustellen.
Wenn Sie haben ein Schlüsselpaar erstellen, wird es wahrscheinlich in sein
~/.ssh/id_*
- zum Beispielid_rsa
für das Standard - RSA - Schlüsselpaar,id_ecdsa
für ECDSA,id_dsa
für DSA. Obwohl diese Dateien enthalten sowohl private und öffentliche Teile des Keypair wird der öffentliche Teil in der Regel automatisch in eine separate extrahiertid_*.pub
Datei für die Bequemlichkeit (id_rsa.pub
fürid_rsa
und so weiter).quelle