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:%p
là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.
- Người dùng vào
ssh final
- Một kết nối ssh đến bastion.com được tạo.
- 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.
- 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.
- Bây giờ
ssh final
lệ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