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
...
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.