Tôi đã thử giải pháp của @ Aaron và nó không hiệu quả với tôi, vì nó sẽ thêm lại các khóa của tôi mỗi khi tôi mở một tab mới trong thiết bị đầu cuối của mình. Vì vậy, tôi đã sửa đổi nó một chút (lưu ý rằng hầu hết các khóa của tôi cũng được bảo vệ bằng mật khẩu để tôi không thể gửi đầu ra tới / dev / null):
added_keys=`ssh-add -l`
if [ ! $(echo $added_keys | grep -o -e my_key) ]; then
ssh-add "$HOME/.ssh/my_key"
fi
Điều này làm là nó kiểm tra đầu ra của ssh-add -l
(liệt kê tất cả các khóa đã được thêm vào) cho một khóa cụ thể và nếu nó không tìm thấy nó, thì nó sẽ thêm nó vào ssh-add
.
Bây giờ, lần đầu tiên tôi mở thiết bị đầu cuối, tôi đã hỏi mật khẩu cho các khóa riêng của mình và tôi không được hỏi lại cho đến khi tôi khởi động lại (hoặc đăng xuất - tôi chưa kiểm tra) máy tính của mình.
Vì tôi có một loạt các khóa, tôi lưu trữ đầu ra của ssh-add -l
một biến để cải thiện hiệu suất (ít nhất tôi đoán nó sẽ cải thiện hiệu suất :))
PS: Tôi đang dùng linux và mã này đã chuyển đến ~/.bashrc
tệp của tôi - nếu bạn đang dùng Mac OS X, thì tôi giả sử bạn nên thêm nó vào .zshrc
hoặc.profile
EDIT: Như được chỉ ra bởi @Aaron trong các nhận xét, .zshrc
tệp được sử dụng từ zsh
shell - vì vậy nếu bạn không sử dụng nó (nếu bạn không chắc chắn, thì rất có thể, bạn đang sử dụng bash
thay thế), mã này nên đi đến .bashrc
tập tin của bạn