Saya memiliki entri di ~ / .ssh / config di komputer saya di rumah yang terlihat seperti ini:
host foo bar
ProxyCommand ssh -x -a -q gateway.example.com nc %h 22
di mana gateway.example.com
server di tempat kerja yang terhubung ke Internet publik dan jaringan internal. Kotak gateway menyelesaikan foo dan bar menggunakan entri di / etc / hosts.
Masalah saya adalah bahwa saya perlu menjangkau kotak yang ada di sisi lain foo
. Sebut saja "baz". Tuan rumah "baz" ada di jaringan pribadi lain yang terhubung dengan foo, tetapi bukan yang terhubung dengan "gateway".
Saya sudah mencoba menggunakan ini:
host baz
ProxyCommand ssh -x -a -q gateway/example.com ssh foo nc %h 22
Tetapi itu tidak berhasil, dan saya sedikit keluar dari kedalaman saya. Bagaimana saya melakukan ini?
Saya tidak berpikir itu penting, tapi saya melakukan ini di Ubuntu 10.
-W
bekerja. Itu bergantung pada kode port forwarding di sisi server, yang jauh lebih tua.Menggunakan kunci pribadi yang disimpan di komputer lokal Anda, masukkan perintah ini dengan keypath pribadi, nama pengguna shell, dan nama host / alamat IP diubah ke kebutuhan ssh tujuan-> gateway-> tujuan lokal Anda.
Perhatikan bahwa ProxyCommand lebih disukai daripada Agen Penerusan untuk mengurangi risiko kompromi otentikasi kunci pribadi (menggunakan gateway dan koneksi agen ssh lokal untuk kompromi host lebih lanjut seolah-olah pembajak memiliki kunci pribadi) ketika gateway / jumperbox dibajak root.
Perintah Tunggal Untuk Proxy SSH ke Server (simpan kedua kunci pribadi di komputer lokal):
sumber
Inilah yang saya lakukan untuk keluar dari jaringan yang dilindungi ke Internet.
Saya menggunakan laptop saya untuk bekerja dengan kode di build . Karena build dibatasi dari akses Internet, untuk mengkloning repo dari github.com, pertama-tama saya perlu beralih ke toolbox , yang juga tidak memiliki akses internet. Tetapi dapat mengakses gw , yang memiliki Internet.
Seperti ini:
Saya
.ssh/config
sedang membangun :Penjelasan.
git clone [email protected]:aRepo/There
hanya bekerja!Bersih?
sumber