Berikut solusi lainnya, untuk use case yang sedikit berbeda, yaitu:
- Anda dapat mengakses
github.com
dari host, katakanlah, foo
.
- Anda sebenarnya perlu menyambungkannya dari host lain, misalnya
bar
.
- Anda hanya perlu melakukan ini secara interaktif - tidak pernah dari tugas cron atau tindakan otomatis lainnya.
- Namun,
bar
tidak diperbolehkan membuat koneksi TCP keluar - baik secara langsung atau melalui host proxy.
- Anda dapat menggunakan SSH untuk terhubung dari
foo
ke bar
.
- Pada koneksi ini, Anda diperbolehkan untuk mengatur terowongan SSH terbalik.
Dalam situasi ini, Anda dapat melakukan hal berikut:
- Pada
foo
, di ~/.ssh/config
, tentukan terowongan SSH terbalik untuk host bar
.
- Pada
bar
, di ~/.ssh/config
, tentukan titik akhir terowongan sebagai proksi untuk host github.com
.
Misalnya, dengan versi OpenSSH yang cukup modern, Anda dapat menggunakan:
Host bar
RemoteForward 22022 bar:22
pada foo
, dan pada bar
:
Host github.com
ProxyJump localhost:22022
Sekarang, jika semuanya baik-baik saja, setelah melakukannya
slogin bar
pada foo
, Anda dapat menggunakan, pada bar
:
git clone [email protected]:github/gitignore.git
(atau repositori apa pun yang ingin Anda gunakan) dan ini akan mencoba menggunakan terowongan terbalik dari localhost:22022
ke foo
untuk terhubung ke github.com
.
Ini berfungsi untuk saya (dengan kedua host menjalankan Ubuntu 18.04).
Catatan:
- Seharusnya dimungkinkan untuk mengganti baris
~/.ssh/config
pada bar
dengan sesuatu yang setara di ~/.gitconfig
; misalnya menggunakan gitProxy
atau [url (...) .insteadOf (...)]
. Saya belum berhasil membuat ini berhasil.
- Untuk menyambung ke
github.com
menggunakan HTTPS, bukan SSH, balikkan terowongan ke port 443
, bukan 22
.
- Ini cukup rapuh, karena bergantung pada bit konfigurasi khusus pada
foo
dan bar
yang bekerja bersama-sama. Jadi saya tidak akan merekomendasikan ini, kecuali untuk kasus penggunaan tertentu, yang sulit untuk memikirkan cara lain yang lebih baik.
person
reinierpost
schedule
02.08.2021
ProxyJump
. Di sisi klien konfigurasikan ssh untuk menggunakan server sebagai jump-host untuk GitHub. - person phd   schedule 25.06.2020