Không có gì key key_load_public: không có tập tin hoặc thư mục như vậy có nghĩa là gì?


42

Tôi đã được khắc phục sự cố một PubkeyAuthenticationlần. Khi tôi sử dụng chế độ dài dòng, tôi thấy rất nhiều "key_load_public: không có tệp hoặc thư mục như vậy" .

Rõ ràng, các khóa thoát trên hệ thống tập tin, do đó thông báo dường như không có ý nghĩa thông thường:

$ 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

Chính xác thì "key_load_public: không có tệp hoặc thư mục như vậy" nghĩa là gì?


.ssh/configTập tin của tôi có:

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

Thêm *.pubphần mở rộng không có hiệu lực. Tôi đã thử cả có và không có *.pubvì trang man không rõ ràng về khóa nào cần được chỉ định - công khai hoặc riêng tư. (Khóa mu là tất cả những gì cần thiết cho một danh tính; khóa riêng là cần thiết để chứng minh quyền sở hữu của khóa trong một thách thức / phản hồi):

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

$ ssh -v -p 1522 jwalton@192.168.1.11
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
...

Câu trả lời:


66

Nó có nghĩa đen theo nghĩa đen: không có tập tin hoặc thư mục nào mà ssh muốn truy cập.

Tuy nhiên, nó nói về các tập tin được đề cập dưới đây , không phải ở trên. Bạn chỉ có các khóa công khai thông thường, nhưng bạn không có chứng chỉ SSH cho chúng (có lẽ vì bạn không cần chúng). Tuy nhiên OpenSSH sẽ luôn cố gắng tải .pub-certtệp được liên kết cho mỗi khóa nhận dạng.


Hướng dẫn sử dụng ssh-keygen (1) nói về việc tạo thẩm quyền chứng nhận OpenSSH và ký chứng chỉ, nếu bạn quan tâm. (Lưu ý: điều này không sử dụng X.509, chỉ có định dạng chứng chỉ riêng của OpenSSH.)

Thông thường các chứng chỉ chỉ hữu ích nếu bạn có một lượng lớn người dùng (và / hoặc máy chủ) nhưng không muốn sử dụng Kerberos.


Cảm ơn Grawity. Để làm IdentityFilegì, tôi nên chỉ định những gì? Khóa công khai hay khóa riêng?
jww

Nó phải là tệp khóa riêng (thực sự chứa toàn bộ khóa - .pubtệp bổ sung chỉ dành cho [loại] thuận tiện).
grawity

5
Ooph, bây giờ thật khó hiểu. Ai đó nên thực sự nộp báo cáo lỗi :-(
einpoklum - phục hồi Monica

1
Nếu bằng cách "gửi báo cáo lỗi", bạn có nghĩa là "gửi bản sửa lỗi", thì hãy thoải mái làm điều đó: github.com/openssh/openssh-portable/blob/master/README#L38 :). Đây là nơi để bắt đầu tìm kiếm: github.com/openssh/openssh-portable/blob/master/key.c#L342github.com/openssh/openssh-portable/blob/master/ssh.c#L2091 .
Alexander Bird

12
Đôi khi "báo cáo lỗi" có nghĩa đen là "báo cáo lỗi". Không phải mọi người dùng openssh đều là lập trình viên C.
grawity
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.