Kiểm tra môi trường SSH_AUTH_SOCK
là tốt cho các kết nối ssh trực tiếp.
Nếu bạn sử dụng proxy ( proxy_command
), bạn có thể có một kết nối trông giống như:
local
-> hostA
-> hostB
-> hostC
->hostD
Nếu chuyển tiếp tác nhân được kích hoạt trên tất cả các máy chủ đó, thì nó SSH_AUTH_SOCK
sẽ được đặt và "chứa" khóa ssh của bạn local
trên tất cả các máy chủ.
Bây giờ giả sử chuyển tiếp tác nhân bị vô hiệu hóa hostB
nhưng được bật hostC
. SSH_AUTH_SOCK
sẽ được thiết lập hostD
nhưng nó thực sự sẽ "trống rỗng". Tất nhiên các đại lý được chuyển tiếp nhưng chỉ từ hostC
đến hostD
. Chuỗi bị hỏng.
Bây giờ để kiểm tra xem thực sự chìa khóa có sẵn trên hostD
bạn chỉ cần gọi ssh-add
. Nó sẽ thoát với mã 1 trong mọi trường hợp, nhưng nếu khóa không có sẵn, nó sẽ hiển thị điều này trên stderr
:
Không thể mở kết nối đến đại lý xác thực của bạn.
Vì vậy, bạn có thể kiểm tra SSH_AUTH_SOCK
cộng đảm bảo ssh_add
không có đầu ra.
ssh-find-agent
kịch bản để tìm và sử dụng các tác nhân ssh hiện có, rất tiện dụng! Repo có một số ví dụ trong README. Bạn có thể phát hiện nếu ssh-agent được kích hoạt như vậy, cùng với việc kiểm tra các tệp cấu hình SSH, thay vì nhìn vào đầu ra SSH.