Khi tạo các đường hầm ngược trên các phiên bản gần đây của OpenSSH, một cổng 0 từ xa có thể được cung cấp để liên kết bất kỳ cổng có sẵn nào:
-R [bind_address:] port: host: hostport
...
Nếu đối số cổng là `0 ', cổng nghe sẽ được phân bổ động trên máy chủ và được báo cáo cho máy khách khi chạy.
trang chủ của ssh openssh
Câu hỏi của tôi là làm thế nào tôi có thể (theo cách tự động) xác định phân bổ cổng này trên máy chủ. Có vẻ như không hữu ích khi nó được báo cáo cho máy chủ đang chạy ứng dụng khách ssh - nhưng không phải với mục tiêu, họ sẽ muốn thực hiện kết nối với cổng này để truy cập dịch vụ trên máy khách.
Hai tùy chọn tương tự tôi có thể nghĩ là đang chạy
# netstat -ntlp
trên máy chủ và tìm kiếm các cổng nghi ngờ bị ràng buộc trên 127.0.0.1 bởi sshd hoặc bằng cách nhìn vào đầu ra của
# lsof -p $PPID | grep TCP | grep LISTEN
Nhưng cả hai điều này đều không dễ chịu theo quan điểm tự động hóa, và không có cách nào buộc các cổng động trở lại cổng dịch vụ gốc nếu có nhiều hơn một đường hầm như vậy được tạo ra.
Có bất cứ điều gì tôi thiếu để có được một danh sách các đường hầm hoạt động (cả số cổng cục bộ và từ xa) một cách hiệu quả ở phía máy chủ sshd, giống như biến môi trường SSH_CONNMENT, nhưng đối với các đường hầm hoạt động không?
Đối với một số bối cảnh, tôi đang cố gắng tạo ra rất nhiều đường hầm đảo ngược đồng thời cho một máy chủ, đường hầm trở lại cùng một số cổng trên nhiều máy chủ khác nhau. Có ngăn xếp TCP tự động quản lý nhóm cổng có vẻ như là cách hiệu quả nhất để làm việc này.