web-dev-qa-db-ja.com

「key_load_public:そのようなファイルまたはディレクトリはありません」とはどういう意味ですか?

PubkeyAuthentication-only問題のトラブルシューティングをしています。冗長モードを使用すると、たくさんの「key_load_public:そのようなファイルやディレクトリはありません」が表示されます。

明らかに、キーはファイルシステム上に存在するので、messageは慣習的な意味を持つようには見えません。

$ 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

正確には、 "key_load_public:そのようなファイルやディレクトリはありません"とはどういう意味ですか?


私の.ssh/configファイルは次のとおりです。

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

*.pub拡張子を追加しても効果はありません。 manページでは、公開鍵と非公開鍵のどちらを指定する必要があるかについてあいまいなので、*.pubの有無にかかわらず試してみました。 (公開鍵は身元証明に必要なものすべて、秘密鍵はチャレンジ/レスポンスにおける鍵の所有権を証明するために必要です):

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

それは文字通りそれが言うことを意味します:sshがアクセスしたがっていたそのようなファイルまたはディレクトリがありません。

しかし、それは上ではなく、下記のファイルについて話しています。通常の公開鍵だけを持っていますが、それらのためのSSH証明書を持っていません(おそらくあなたがそれらを必要としていないためです)。しかしOpenSSHは常に各識別キーに対して関連する.pub-certファイルをロードしようとします。


Ssh-keygen(1)マニュアルは、OpenSSH認証局の作成と証明書への署名について話しています。興味があるならば。 (注:これはX.509を使用せず、OpenSSH独自の証明書フォーマットのみを使用します。)

通常、証明書は、大量のユーザー(および/またはサーバー)がいるがKerberosを使用したくない場合にのみ役立ちます。

62
grawity