it-swarm.com.de

Was bedeutet "key_load_public: keine solche Datei oder kein solches Verzeichnis"?

Ich habe ein Problem mit PubkeyAuthentication-only behoben. Wenn ich den ausführlichen Modus verwende, sehe ich viel "key_load_public: keine solche Datei oder kein solches Verzeichnis" .

Offensichtlich werden die Schlüssel im Dateisystem beendet, sodass die Meldung keine übliche Bedeutung zu haben scheint:

$ ls -al ~/.ssh/id_*
-rw-------  1 jwalton  staff   751 Feb  4  2013 id_dsa
-rw-------  1 jwalton  staff   608 Feb 18  2015 id_dsa.pub
-rw-------  1 jwalton  staff   314 Feb  4  2013 id_ecdsa
-rw-------  1 jwalton  staff   180 Feb 18  2015 id_ecdsa.pub
-rw-------  1 jwalton  staff   464 Aug 23 18:15 id_ed25519
-rw-------  1 jwalton  staff   103 Aug 23 18:15 id_ed25519.pub
-rw-------  1 jwalton  staff  2546 Feb  4  2013 id_rsa
-rw-------  1 jwalton  staff   572 Feb 18  2015 id_rsa.pub

Was genau bedeutet "key_load_public: keine solche Datei oder solches Verzeichnis" ?


Meine .ssh/config Datei hat:

$ cat ~/.ssh/config
IdentityFile ~/.ssh/id_ed25519
IdentityFile ~/.ssh/id_ecdsa
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/id_rsa

Das Hinzufügen der Erweiterung *.pub hat keine Auswirkung. Ich habe es sowohl mit als auch ohne *.pub versucht, da die Manpage nicht eindeutig ist, welcher Schlüssel angegeben werden muss - öffentlich oder privat. (Ein öffentlicher Schlüssel ist alles, was für eine Identität erforderlich ist. Ein privater Schlüssel ist erforderlich, um den Besitz des Schlüssels in einer Challenge/Response nachzuweisen.)

IdentityFile
    Specifies a file from which the user's DSA, ECDSA or DSA authen-
    tication identity is read...

$ ssh -v -p 1522 [email protected]
OpenSSH_7.1p1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /Users/jwalton/.ssh/config
debug1: Reading configuration data /usr/local/etc/ssh_config
debug1: Connecting to 192.168.1.11 [192.168.1.11] port 1522.
debug1: Connection established.
debug1: identity file /Users/jwalton/.ssh/id_ed25519.pub type 4
debug1: key_load_public: No such file or directory
debug1: identity file /Users/jwalton/.ssh/id_ed25519.pub-cert type -1
debug1: identity file /Users/jwalton/.ssh/id_ecdsa.pub type 3
debug1: key_load_public: No such file or directory
debug1: identity file /Users/jwalton/.ssh/id_ecdsa.pub-cert type -1
debug1: identity file /Users/jwalton/.ssh/id_dsa.pub type 2
debug1: key_load_public: No such file or directory
debug1: identity file /Users/jwalton/.ssh/id_dsa.pub-cert type -1
debug1: identity file /Users/jwalton/.ssh/id_rsa.pub type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/jwalton/.ssh/id_rsa.pub-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
...
40
jww

Es bedeutet wörtlich, was es sagt: Es gibt keine solche Datei oder Verzeichnis, auf die ssh zugreifen wollte.

Es handelt sich jedoch um die erwähnte Datei below , nicht above. Sie haben nur die regulären öffentlichen Schlüssel, aber Sie haben nicht die SSH Zertifikate für sie (vermutlich, weil Sie sie einfach nicht benötigen). OpenSSH versucht jedoch immer, die zugehörige .pub-cert-Datei für jeden Identitätsschlüssel zu laden.


Das Handbuch zu ssh-keygen (1) befasst sich mit dem Erstellen einer OpenSSH-Zertifizierungsstelle und dem Signieren von Zertifikaten, falls Sie interessiert sind. (Hinweis: Dies verwendet nicht X.509, sondern nur das OpenSSH-eigene Zertifikatformat.)

Normalerweise sind die Zertifikate nur dann nützlich, wenn Sie eine große Anzahl von Benutzern (und/oder Servern) haben, aber Kerberos nicht verwenden möchten.

62
grawity