SSH thông qua SOCKS Proxy? (khách hàng = OpenSSH OS X)


11

Tôi không chắc câu hỏi này phù hợp nhất ở đây trên ServerFault hay trên SuperUser. Nghĩ về nó một cách logic, tôi nghĩ rằng đây là một câu hỏi sysadmin, vì vậy tôi sẽ đặt nó ở đây, và nếu các mod nghĩ rằng nó nên di chuyển, thì xin lỗi vì đã đoán sai!

Dù sao đi nữa - Tôi có một máy chủ ngoài trang web và tôi bị kẹt trên một IP riêng không có quyền truy cập vào mạng ngoại trừ thông qua proxy HTTP hoặc proxy SOCKS 4/5. Tôi đang chạy OS X và tôi muốn lệnh ssh từ thiết bị đầu cuối hoạt động thông qua một trong hai proxy đó để thoát ra máy chủ từ xa. Cổng SSH trên máy chủ từ xa là không chuẩn, mặc dù tôi nghi ngờ điều đó sẽ tạo ra nhiều khác biệt.

Câu trả lời:


5

Tôi biết đây là một bài viết cổ, nhưng tôi nghĩ câu trả lời này vẫn sẽ hữu ích:

Bạn có thể dễ dàng thực hiện việc này thông qua proxy SOCKS với NetCat (nc). Trong ~ / .ssh / config, bạn chỉ cần thêm hai dòng, một dòng chỉ định máy chủ nào bạn muốn proxy và một dòng để cho nó biết cách kết nối qua nc. Thích như vậy:

~ / .ssh / config: (đã thử nghiệm trên OSX, cũng nên hoạt động trên Linux)

Host 10.*
    ProxyCommand nc -X 5 -x PROXY_HOST:1080 %h %p

Thay thế "PROXY_HOST" bằng thiết bị phù hợp với thiết lập của bạn.

Điều này gây ra ssh, thay vì trực tiếp mở kết nối TCP đến máy chủ đích (trong trường hợp này, bất cứ điều gì bắt đầu bằng "10." - có thể là IP hoặc tên máy chủ), hãy chạy lệnh "nc" với các tùy chọn đã chỉ định để thực sự thiết lập kết nối TCP và SSH thực hiện phần còn lại từ đó. Rất tiện dụng.

"5" là phiên bản SOCKS, "1080" là cổng proxy, "% h" SSH thay thế bằng máy chủ bạn đã nhập trên dòng lệnh và "% p" SSH thay thế bằng cổng từ dòng lệnh (hoặc mặc định 22).


7

Vâng, điều này có thể được thực hiện. Xem trang web này cho một ví dụ.

Về cơ bản, bạn sử dụng ~/.ssh/configflle cục bộ của bạn (hoặc /etc/ssh/ssh_confignếu bạn cần nó ở toàn hệ thống) để chỉ định một lệnh ProxyCommandcho các máy chủ mà bạn cần thông qua proxy để truy cập.

Bạn cũng có thể sử dụng nc(đi kèm với OS X) thay vì phần mềm họ đề cập trên trang web đó.

Tham khảo trang ssh_config(5)nc(1)man để biết thêm thông tin.


1
Thật không may, trang bạn liên kết đã hết hạn và liên kết đến phiên bản vá của nhị phân đã chết - lỗi 404.
Bart B

1
Ôi thật đáng xấu hổ - Tôi đã tìm thấy một liên kết đến một lệnh proxy đang hoạt động vẫn biên dịch trên OS X 10.7 Lion và vẫn hoạt động, TRÊN BLOG CỦA TÔI! Trong phòng thủ của tôi bài viết là 6 tuổi, nhưng vẫn còn. Hướng dẫn làm việc tại đây: bartbusschots.ie/blog/?p=184
Bart B

2
@BartB "Bất cứ điều gì bạn viết hơn một tuần trước cũng có thể đã được viết bởi người khác." - Đó là một tiên đề lập trình, nhưng nó cũng đúng với sysadins và blogger.
voretaq7

3

Hơi muộn một chút, nhưng lưu ý rằng bạn có thể sử dụng các câu trả lời khác ở đây trong chính lệnh SSH với cờ -o. Điều này hữu ích cho tôi, vì tôi có thể hoặc không cần sử dụng proxy (tùy thuộc vào văn phòng tôi đang ở) nên tôi không thực sự muốn chỉnh sửa các tệp cấu hình ssh của mình.

ssh -o "ProxyCommand nc -X 5 -x myproxy:myproxyport %h %p" myuser@cantaccessthiswithoutproxy.com
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.