khóa ssh ssh-agent bash và ssh-add


28

Tôi mới sử dụng phím ssh. Bất cứ ai có thể giải thích làm thế nào ssh-agent bashssh-addlàm việc?

Tôi cần phải hiểu nội bộ của nó trong tương lai.


Bạn đã thử bản hit hàng đầu của Google cho bất kỳ điều khoản nào chưa?
Daniel Beck

Vâng, tôi đã làm. Tôi đã không nhận được bất kỳ thông tin hữu ích. Xấu của tôi
maneeshshetty

Câu trả lời:


44

Một tác nhân là một chương trình giữ các khóa của bạn trong bộ nhớ để bạn chỉ cần mở khóa chúng một lần , thay vì mỗi lần. ssh-agent thực hiện điều này cho các khóa SSH.

Các phương thức thông thường để bắt đầu ssh-agent là:

  • eval `ssh-agent`- điều này chạy tác nhân trong nền và đặt các biến môi trường phù hợp cho trường hợp shell hiện tại .

    ( ssh-agent , khi được bắt đầu mà không có đối số, sẽ xuất ra các lệnh được giải thích bởi shell của bạn.)

  • exec ssh-agent bash- bắt đầu một phiên bản mới của bashshell, thay thế phiên bản hiện tại.

    (Với một hoặc nhiều đối số, ssh-agent không tạo ra bất cứ thứ gì, nhưng bắt đầu lệnh được chỉ định: trong trường hợp này là bashshell, nhưng về mặt kỹ thuật, nó có thể là bất cứ thứ gì.)

    Phương thức thứ hai đôi khi được ưa thích hơn, vì nó tự động giết ssh-agent khi bạn đóng cửa sổ terminal. (Khi bắt đầu với nó eval, tác nhân sẽ vẫn chạy, nhưng không thể truy cập.)

Tuy nhiên, điều này chỉ bắt đầu một tác nhân trống. Để thực sự làm cho nó hữu ích, bạn cần sử dụng ssh-add , mở khóa (thường ~/.ssh/id_*) và tải chúng vào tác nhân, làm cho chúng có thể truy cập vào các kết nối ssh hoặc sftp .


3
Có cách nào để bắt đầu ssh-agent qua nhiều phiên bash không?
Asim

9

Ngoài ra, bạn có thể muốn thêm một số khóa khi bắt đầu phiên.

Chỉnh sửa ~/.bashrctệp của bạn và thêm:

ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null  # start ssh-agent if not present
[ $? -eq 0 ] && {                                     # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null        # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null        # Load key 2
}

Kiểm tra chìa khóa của bạn với ssh-add -l

Bạn có thể dừng phiên ssh-agent hiện tại với ssh-agent -k

Một vài điều cần biết về ssh-agent và .bashrc là không tải quá nhiều khóa. Số lần thử mặc định cho ssh daemon được giới hạn là 6. Điều này có thể được sửa đổi /etc/ssh/sshd_configbằng MaxAuthTriesgiá trị.


1
Còn mật khẩu khóa riêng khi khởi chạy ssh-addvới "&" thì sao? Bạn có cho rằng các tệp khóa riêng không được bảo vệ?
Luciano

Đoạn mã trên yêu cầu cụm mật khẩu hai lần, một lần khi kiểm tra xem ssh-agent có khả dụng không và một lần nữa khi tải khóa riêng.
Tapan Chandra
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.