SSH melalui Proxy SOCKS? (klien = OpenSSH OS X)

11

Saya tidak yakin apakah pertanyaan ini paling cocok di ServerFault atau di SuperUser. Memikirkannya secara logis saya pikir ini adalah pertanyaan sysadmin, jadi saya taruh di sini, dan jika mod berpikir itu harus bergerak, maka permintaan maaf untuk menebak salah!

Bagaimanapun - Saya memiliki server di luar situs, dan saya terjebak pada IP pribadi dengan akses non ke internet kecuali melalui proxy HTTP atau proxy SOCKS 4/5. Saya menjalankan OS X, dan saya ingin perintah ssh dari terminal entah bagaimana bekerja melalui salah satu dari dua proxy untuk keluar ke server jauh. Port SSH pada server jarak jauh adalah non-standar, meskipun saya ragu itu akan membuat banyak perbedaan.

Bart B
sumber

Jawaban:

5

Saya tahu ini adalah pos kuno, tetapi saya pikir jawaban ini akan tetap membantu:

Anda dapat dengan mudah melakukan ini melalui proxy SOCKS dengan NetCat (nc). Dalam ~ / .ssh / config Anda, Anda hanya menambahkan dua baris, yang menentukan host mana yang ingin Anda proksi, dan satu baris untuk memberi tahu cara menghubungkan melalui nc. Seperti itu:

~ / .ssh / config: (diuji pada OSX, harus bekerja di Linux juga)

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

Ganti "PROXY_HOST" dengan yang tepat untuk pengaturan Anda.

Ini menyebabkan ssh, alih-alih langsung membuka koneksi TCP ke host target (dalam hal ini apa pun yang dimulai dengan "10." - bisa berupa IP atau nama host), jalankan perintah "nc" dengan opsi yang ditentukan untuk benar-benar buat koneksi TCP, dan SSH melakukan sisanya dari sana. Sangat berguna.

"5" adalah versi SOCKS, "1080" adalah port proxy, "% h" SSH menggantikan dengan host yang Anda ketikkan pada baris perintah, dan "% p" SSH menggantikan dengan port dari baris perintah (atau default 22).

bgp
sumber
7

Ya ini bisa dilakukan. Lihat situs ini untuk satu contoh.

Pada dasarnya Anda menggunakan ~/.ssh/configflle lokal Anda (atau /etc/ssh/ssh_configjika Anda membutuhkannya untuk seluruh sistem) untuk menentukan ProxyCommandarahan untuk host yang Anda harus pergi melalui proxy untuk sampai ke.

Anda juga dapat menggunakan nc(yang dilengkapi dengan OS X) alih-alih perangkat lunak yang mereka sebutkan di situs itu.

Mengacu pada ssh_config(5)dan nc(1)halaman manual untuk informasi tambahan.

voretaq7
sumber
1
Sayangnya halaman yang Anda tautkan kedaluwarsa, dan tautan ke versi biner yang ditambal sudah mati - 404 kesalahan.
Bart B
1
Oh betapa memalukannya ini - saya menemukan tautan ke perintah proxy yang berfungsi yang masih dikompilasi pada OS X 10.7 Lion, dan masih berfungsi, PADA BLOG SAYA SENDIRI! Dalam pembelaan saya, pos itu berumur 6 tahun, tetapi masih. Instruksi kerja di sini: bartbusschots.ie/blog/?p=184
Bart B
2
@ BartB "Apa pun yang Anda tulis lebih dari seminggu yang lalu mungkin telah ditulis oleh orang lain." - Ini adalah aksioma pemrograman, tetapi juga berlaku untuk sysadmin dan blogger.
voretaq7
3

Agak terlambat, tetapi perhatikan bahwa Anda dapat menggunakan jawaban lain di sini di perintah SSH sendiri dengan tanda -o. Ini berguna bagi saya, karena saya mungkin atau mungkin tidak perlu menggunakan proxy (tergantung kantor mana saya berada) jadi saya tidak benar-benar ingin mengedit file konfigurasi ssh saya.

ssh -o "ProxyCommand nc -X 5 -x myproxy:myproxyport %h %p" [email protected]
EdmCoff
sumber