web-dev-qa-db-fra.com

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

J'ai résolu un problème PubkeyAuthentication- only. 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 fichier .ssh/config a:

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

L'ajout de l'extension *.pub n'a aucun effet. J'ai essayé à la fois avec et sans *.pub car la page de manuel est ambiguë en ce qui concerne la clé à spécifier (publique ou privée). (Une clé publique suffit pour une identité; une clé privée est nécessaire pour prouver la propriété de la clé dans un défi/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
...
40
jww

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 ne disposez que des clés publiques habituelles, mais vous ne disposez pas du SSH certificats (probablement parce que vous n'en avez pas besoin). Cependant OpenSSH essaiera toujours de charger le fichier .pub-cert associé pour chaque clé d’identité.


Le manuel de 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: cela 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.

62
grawity