Que signifie «key_load_public: aucun fichier ou répertoire de ce type»?

42

J'ai PubkeyAuthenticationrésolu un problème uniquement. Lorsque j'utilise le mode commenté , je vois beaucoup de "key_load_public: aucun fichier ni répertoire de ce type" .

De toute évidence, les clés existent sur le système de fichiers, de sorte que le message ne semble pas avoir de signification usuelle:

$ 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

Que signifie exactement "key_load_public: aucun fichier ou répertoire de ce type" ?


Mon .ssh/configdossier a:

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

L'ajout de l' *.pubextension n'a aucun effet. J'ai essayé les deux avec et sans *.pubparce que la page de manuel est ambiguë en ce qui concerne la clé à spécifier - publique ou privée. (Une clé publique est tout ce dont vous avez besoin pour une identité; une clé privée est nécessaire pour prouver la propriété de la clé dans un challenge / une réponse):

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
...
jww
la source

Réponses:

66

Cela signifie littéralement ce qu'il dit: il n'y a aucun fichier ou répertoire auquel ssh a voulu accéder.

Cependant, il est question du fichier mentionné ci - dessous , pas ci-dessus. Vous n'avez que les clés publiques habituelles, mais vous n'avez pas les certificats SSH pour elles (probablement parce que vous n'en avez simplement pas besoin). Cependant OpenSSH essaiera toujours de charger le .pub-certfichier associé pour chaque clé d’identité.


Le manuel ssh-keygen (1) parle de la création d’une autorité de certification OpenSSH et de la signature de certificats, si cela vous intéresse. (Remarque: ceci n'utilise pas X.509, seulement le propre format de certificat d'OpenSSH.)

Généralement, les certificats ne sont utiles que si vous avez un nombre considérable d’utilisateurs (et / ou de serveurs) mais ne souhaitez pas utiliser Kerberos.

Grawity
la source
Merci Grawity. Car IdentityFileque dois-je spécifier? La clé publique ou la clé privée?
jww
Il devrait s'agir du fichier de clé privée (qui contient en fait l'intégralité de la paire de clés - le .pubfichier supplémentaire sert uniquement à [une sorte de] commodité).
Grawity
5
Ooph, maintenant c'est déroutant. Quelqu'un devrait vraiment faire un rapport de bogue :-(
einpoklum - rétablir Monica
1
Si par "déposer un rapport de bogue" vous voulez dire "soumettre le correctif", n'hésitez pas à le faire: github.com/openssh/openssh-portable/blob/master/README#L38 :). Voici un endroit pour commencer à chercher: github.com/openssh/openssh-portable/blob/master/key.c#L342 et github.com/openssh/openssh-portable/blob/master/ssh.c#L2091 .
Alexander Bird
12
Parfois, "rapport de bogue" signifie littéralement "rapport de bogue". Tous les utilisateurs openssh ne sont pas des programmeurs C.
Grawity