Làm thế nào để ssh ProxyCommand thực sự hoạt động?


8

Tôi cảm thấy thoải mái với việc sử dụng tính năng ProxyCommand của ssh và có thể sử dụng nó để nhảy qua các máy chủ pháo đài mulitple để tiếp cận máy chủ cuối cùng một cách hiệu quả. Nhưng tôi dường như không thể hiểu làm thế nào nó thực sự hoạt động trong phần phụ trợ.

Ví dụ. Tôi có tập tin cấu hình sau.

Host final
Hostname final.com
Port 22
AgentForwarding yes
User guestuser
ProxyCommand "ssh user@bastion.com -W %h:%p"

Tôi hiểu rằng để kết nối với máy chủ final, ProxyCommand sẽ chạy trước khi thực hiện kết nối final.com. Nhưng tôi dường như vẫn không thể hiểu thứ tự của các kết nối.

Và lựa chọn này -W %h:%plàm gì? Tôi hiểu rằng đó là tính năng netcat và tương tự như nc %h %p.

Theo như sự hiểu biết của tôi ở đây là chuỗi các hoạt động. Vui lòng cho tôi biết nếu tôi sai. Tôi sẽ sử dụng tệp cấu hình được chỉ định ở trên trong ví dụ của mình.

  1. Người dùng vào ssh final
  2. Một kết nối ssh đến bastion.com được tạo.
  3. Một đường hầm netcat được tạo từ bastion.com đến cổng 22 của Final.com. Stdin của netcat được kết nối với vỏ thu được trong kết nối với bastion.com.
  4. Vì vậy, bây giờ chúng tôi có một kết nối từ hệ thống của chúng tôi đến Final.com. Nửa đầu của kết nối này là kết nối ssh từ hệ thống của chúng tôi đến bastion.com. Nửa sau của kết nối này là một đường hầm netcat từ bastion.com đến Final.com.
  5. Bây giờ ssh finallệnh lấy kết nối trên làm proxy và đường hầm dữ liệu của nó thông qua kết nối hiện có này.

Ngoài ra tôi cũng muốn biết liệu kỹ thuật này còn được gọi là ssh stacking không?

thêm dòng

Câu trả lời:


8

3) Một đường hầm netcat được tạo từ bastion.com đến cổng 22 của Final.com.

sai, không có netcat.

1) Người dùng nhập ssh finalvào localhost. Điều này khởi chạy tiến trình ssh cha
2)
Ssh cha tạo một ssh con với I / O được chuyển hướng đến các đường ống 3) Ssh con tạo kết nối đến bastion.com.
4) sshdQuá trình trên bastion.com tạo kết nối tcp đến Final.com:22
5) Một kênh ssh được thêm vào kết nối ssh hiện có giữa localhost và bastion.com
6) Parent ssh ghi dữ liệu bắt tay vào đường ống, ssh con đọc nó từ đường ống, gửi qua kênh ssh đến sshd trên bastion.com; sshd đọc nó và ghi nó vào ổ cắm được kết nối với Final.com. Tương tự, dữ liệu được truyền từ Final.com đến localhost


Cảm ơn câu trả lời của bạn. Kỹ thuật này còn được gọi là ssh stacking hay nó không có tên?
Naruto Uzumaki

2
Bạn có thể vui lòng trích dẫn một tài liệu tham khảo? Ví dụ: hướng dẫn sử dụng. spec ..
qweruiop
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.