Server relai SSH dengan OpenSSH

10

Apakah mungkin menggunakan OpenSSH untuk menyampaikan ke perangkat lain yang mendukung SSH seperti switch router, dll. Jika ini adalah sesuatu yang dapat dilakukan tanpa membuat aplikasi yang dipesan lebih dahulu di Linux untuk melakukannya?

Terima kasih

seorang pemburu
sumber

Jawaban:

9

Tentu; cukup gunakan SSH port forwarding / tunneling. Mulai koneksi ssh ke mesin "proxy" menggunakan perintah berikut:

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST: mesin yang Anda punya akses SSH
  • $REMOTEHOST: mesin yang dapat dihubungkan oleh $ PROXYHOST, tetapi Anda tidak bisa. Gunakan nama host atau IP yang $PROXYHOSTdapat 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 meneruskan ke port 22 aktif $REMOTEHOST

Biarkan koneksi itu tetap menyala agar terowongan berfungsi. Anda mungkin ingin juga menambahkan -Nperintah sehingga koneksi ini tidak akan memunculkan shell jarak jauh dan Anda tidak akan sengaja menutupnya nanti.

Setelah terowongan terbentuk, lakukan hal berikut:

ssh -p $LOCALPORT localhost

Ini mencoba koneksi SSH ke mesin lokal Anda pada port yang diteruskan ke $REMOTEHOSTport SSH.

Brad Beyenhof
sumber
3

Jika Anda ingin memperbarui konfigurasi pada klien Anda, Anda dapat mengatur klien Anda untuk menggunakan kotak gateway Anda sebagai proxy . Kotak relai Anda akan perlu menginstal netcat, dan untuk hasil terbaik Anda ingin memiliki pengaturan otentikasi berbasis kunci.

Inilah yang saya gunakan di .ssh / config saya untuk terhubung melalui host lain.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"

Dengan cara di atas, Anda cukup menjalankan perintah ssh internal-ssh-host-proxy dari mesin klien Anda.

Jika host SSH proxy memiliki klien OpenSSH 5.4 atau lebih, Anda tidak perlu netcat, dan sebagai gantinya Anda dapat menggunakan mode netcat bawaan.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22
Sakit kepala
sumber
Maaf tapi ini tidak menggunakan OpenSSH Anda menggunakan netcat untuk melakukan relay antara server klien dan server?
aHunter
Itu menggunakan OpenSSH dikombinasikan dengan utilitas yang sangat umum yang tersedia hampir di mana-mana. Ini bukan ssh murni, tapi saya tidak akan menyebutnya dipesan lebih dahulu.
Zoredache
Tidak, saya setuju itu bukan dipesan lebih dahulu tapi saya ingin tahu apakah mungkin untuk relay menggunakan OpenSSH sehingga Anda menggunakan klien ssh standar dan ssh ke kotak yang menjalankan OpenSSH yang kemudian secara otomatis kemudian menyediakan akses ssh ke mesin lain atau beberapa mesin. Terima kasih
aHunter
1
@ aHunter, sebagai catatan sekarang ada 'mode netcat' yang dibangun ke dalam openssh 5.4 yang membuat penawaran koneksi openssh murni - blog.rootshell.be/2010/03/08/openssh-new-feature-netcat-mode tidak ada alat eksternal dibutuhkan.
Zoredache
3

Dari jawaban yang disajikan, Zordache adalah solusi keseluruhan terbaik. Namun untuk anak cucu, jika Anda hanya ingin menghubungkan ad-hoc tanpa mengedit konfigurasi Anda, gunakan -tflag untuk mengalokasikan terminal semu bersama dengan mengeksekusi ssh langsung pada relay.

ssh -t relay.example.com ssh internal.example.com
bahamat
sumber
solusi paling sederhana tanpa mengedit file
Kartoch
2

Anda dapat meneruskan koneksi secara otomatis menggunakan OpenSSH. Di ~/.ssh/authorized_keysfile Anda, Anda bisa menentukan perintah untuk dieksekusi, yang bisa jadi 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 permintaan Password:: satu untuk server relai dan satu untuk server target. Anda selalu dapat menghapus perilaku ini dengan menggunakan sertifikat.

sybreon
sumber
kedengarannya sempurna bagaimana Anda mengkonfigurasi sshd di openssh?
aHunter
Lihat bagian pada [Perintah Paksa] [1] di [1] eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
sybreon
ini ide yang luar biasa. Hal terakhir yang ingin saya lakukan adalah membuka 100 port diskrit di firewall saya dengan rute. Kemudian ulangi untuk redundansi. Ini menyarankan saya dapat membuat kunci 100 ssh dan menghubungkan masing-masing ke server itu sendiri. Ini juga menunjukkan bahwa saya dapat sepenuhnya mengunci server relay. Beberapa orang mungkin menyebut ini VPN tetapi saya melihatnya secara berbeda.
Richard