Kiểm tra môi trường SSH_AUTH_SOCKlà 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_SOCKsẽ được đặt và "chứa" khóa ssh của bạn localtrê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 hostBnhưng được bật hostC. SSH_AUTH_SOCKsẽ được thiết lập hostDnhư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 hostDbạ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_SOCKcộng đảm bảo ssh_addkhông có đầu ra.
ssh-find-agentkị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.