Chính xác thì ssh-add làm gì?


15

Gần đây tôi đã cài đặt lại máy tính xách tay của mình và thấy rằng 'git clone' không hoạt động. Tôi đã liên tục nhận được Permission denied (publickey).lỗi.

Bản sửa lỗi được ghi lại trên trang các vấn đề SSH của GitHub : sử dụng ssh-addđể thông báo cho SSH về khóa tôi muốn sử dụng để xác thực trên GitHub.

Câu hỏi của tôi là: dưới mui xe, ssh-addthực sự làm gì?

Tôi đã có ý định mở rộng hiểu biết về SSH trong một thời gian và đây có vẻ là một lý do tốt để bắt đầu :-)

Câu trả lời:


21

ssh-addthêm nhận dạng khóa riêng (từ ~/.sshthư mục của bạn ) vào tác nhân xác thực ( ssh-agent), để tác nhân ssh có thể chăm sóc xác thực cho bạn và bạn không nhập mật khẩu tại thiết bị đầu cuối.


Tôi sẽ thành thật, điều này làm tôi bối rối trong một thời gian. Tôi nghĩ rằng khách hàng ssh luôn sử dụng khóa trong ~/.sshthư mục của bạn . Do một số distro làm tương đương ssh-addtự động? Có lẽ đó là lý do tại sao tôi bối rối?
blong

4
sshkhông sử dụng khóa trong ~/.sshthư mục, nhưng nếu khóa được bảo vệ bởi cụm mật khẩu, thì cụm mật khẩu này phải được nhập vào một lúc nào đó. Nếu bạn sử dụng ssh-agentssh-add, bạn gõ cụm mật khẩu này một lần. Nếu không, bạn phải nhập cụm mật khẩu mỗi lần bạn sử dụng ssh. Lưu ý rằng nếu khóa không được bảo vệ bằng mật khẩu, bạn có thể sử dụng sshmà không được yêu cầu nhập cụm mật khẩu.
Peter John Acklam

Có thể có nhiều khóa ssh ~/.sshvà đây có thể là thứ hữu ích hơn, xem trên các tài liệu
Frank Nocke 11/11/18

0

Dựa trên bài viết này trong github , đôi khi trên một số bản phân phối linux ngay cả sau khi bạn thiết lập mọi thứ chính xác, lỗi này vẫn xuất hiện:

Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).

Và bạn nên chạy ssh-addđể giải quyết vấn đề.

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.