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 bash
và ssh-add
làm việc?
Tôi cần phải hiểu nội bộ của nó trong tương lai.
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 bash
và ssh-add
làm việc?
Tôi cần phải hiểu nội bộ của nó trong tương lai.
Câu trả lời:
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 bash
shell, 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à bash
shell, 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 .
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 ~/.bashrc
tệ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_config
bằng MaxAuthTries
giá trị.
ssh-add
với "&" thì sao? Bạn có cho rằng các tệp khóa riêng không được bảo vệ?