Tôi đã tìm kiếm một giải pháp cho vấn đề sau trong 2 giờ qua mà không gặp may mắn.
Phát triển:
Tôi đang sử dụng xác thực khóa công khai để kết nối với máy chủ của mình. Tôi sử dụng chuyển tiếp ssh-agent để không phải quản lý khóa công khai / riêng tư.
Hãy nói rằng tôi có máy chủ A, B and C
.
Điều này hoạt động rất tốt nếu tôi kết nối từ LOCAL ---> A ---> B
.
Nó cũng hoạt động rất tốt nếu tôi làm LOCAL ---> A ---> C
.
Bây giờ, nếu tôi thử LOCAL ---> A ---> B ---> C
, SSH không thể kết nối từ B to C
.
Đáng chú ý: Tôi kết nối với máy chủ A dưới dạng thanh khoản, trong khi tôi kết nối với máy chủ B là root. Kết nối với máy chủ B vì thanh khoản khắc phục sự cố, nhưng đây không phải là một tùy chọn cho tôi.
Theo khuyến nghị của người dùng, tôi sử dụng ssh -A
mỗi lần để đảm bảo rằng chuyển tiếp đại lý được bật.
Tôi tìm thấy một câu hỏi tương tự, không có câu trả lời nào ở đây: Có thể xâu chuỗi chuyển tiếp ssh-agent qua nhiều bước nhảy không?
Theo @Zoredache tại đây: /server//a/561576/45671 Tôi chỉ cần điều chỉnh cấu hình máy khách của mình trên mỗi hệ thống trung gian. Mà tôi tin rằng tôi đã làm.
ProxyCommand
nhảy (như được giải thích ở đây ) thay vì chuyển tiếp tác nhân SSH. Đối với phương pháp của bạn, bạn sẽ phải tin tưởng tất cả các máy trong chuỗi vì họ có thể (ab) sử dụng khóa riêng của bạn. Tôi cũng thích cách tiếp cận ProxyCommand hơn rất nhiều vì kiểm tra máy chủ đã biết được thực hiện cục bộ và hơn nữa, bạn có thể thiết lập chuỗi trong cấu hình SSH của mình để bạn có thể sử dụng một lệnh để kết nối với C.