Solusi 1:
Tentu; cukup gunakan port forwarding/tunneling SSH. Mulai koneksi ssh ke mesin "proxy" menggunakan perintah berikut:
ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
$PROXYHOST
:mesin tempat Anda memiliki akses SSH$REMOTEHOST
:mesin yang dapat disambungkan oleh $PROXYHOST, tetapi Anda tidak bisa. Gunakan hostname atau IP yang$PROXYHOST
dapat digunakan untuk merujuk ke mesin$SSHPORT
:port yang sedang didengarkan sshd di remotehost; kemungkinan besar 22$LOCALPORT
:port keluar lokal SSH terbuka di mesin lokal Anda yang diteruskan ke port 22 pada$REMOTEHOST
Biarkan koneksi itu tetap aktif agar terowongan tetap berfungsi. Anda mungkin juga ingin menambahkan -N
ke perintah agar koneksi ini tidak memunculkan shell jarak jauh dan Anda tidak akan menutupnya secara tidak sengaja nanti.
Setelah terowongan dibuat, lakukan hal berikut:
ssh -p $LOCALPORT localhost
Ini mencoba koneksi SSH ke mesin lokal Anda di port yang diteruskan ke $REMOTEHOST
port SSH.
Solusi 2:
Jika Anda ingin memperbarui konfigurasi pada klien Anda, Anda dapat mengatur klien Anda untuk menggunakan kotak gateway Anda sebagai proxy. Kotak relai Anda perlu memasang netcat, dan untuk hasil terbaik, Anda perlu menyiapkan autentikasi berbasis kunci.
Inilah yang saya gunakan di .ssh/config saya untuk terhubung melalui host lain.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh [email protected] "/bin/netcat -w 1 internal-ssh-host 22"
Dengan hal di atas Anda cukup menjalankan perintah ssh internal-ssh-host-proxy dari mesin klien Anda.
Jika host proxy SSH memiliki klien OpenSSH 5.4 atau lebih tinggi, Anda tidak memerlukan netcat, dan sebagai gantinya Anda dapat menggunakan mode netcat bawaan.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh [email protected] -W internal-ssh-host:22
Solusi 3:
Dari jawaban yang disajikan, Zordache's adalah solusi terbaik secara keseluruhan. Namun untuk anak cucu, jika Anda hanya ingin menghubungkan ad-hoc tanpa mengedit konfigurasi Anda, gunakan -t
flag untuk mengalokasikan terminal semu bersama dengan mengeksekusi ssh secara langsung pada relai.
ssh -t relay.example.com ssh internal.example.com
Solusi 4:
Anda dapat meneruskan koneksi secara otomatis menggunakan OpenSSH. Di ~/.ssh/authorized_keys
Anda file, Anda dapat menentukan perintah untuk dieksekusi, yang bisa berupa SSH ke mesin kedua.
[ssh client] ----> [ssh relay server] ----> [ssh target server]
you modified authorized_keys target machine
Apa yang akhirnya Anda lihat adalah dua petunjuk untuk Password:
:satu untuk server relai dan satu untuk server target. Anda selalu dapat menghapus perilaku ini dengan menggunakan sertifikat.