Apakah ada cara, dalam satu perintah, untuk membuat koneksi ssh dari komputer saya A, melalui komputer B, ke komputer C, sehingga saya memiliki akses ke shell di komputer C?
Kerutan (yang tampaknya mengesampingkan hanya meneruskan koneksi ssh menggunakan opsi -L) adalah bahwa saya memiliki kata sandi ke akun di komputer B, dan akun di komputer B diizinkan untuk terhubung ke akun di komputer C, tetapi Saya tidak memiliki kata sandi untuk akun di komputer C.
Jawaban:
Saya mengerti bahwa Anda hanya ingin masuk ke komputer C, tidak benar-benar menyalurkan apa pun dari A ke C. Jadi, ini harus dilakukan caranya:
Anda mungkin harus memasukkan kata sandi dua kali, pertama untuk komputer B dan kemudian untuk komputer C, tetapi ini dapat dihindari dengan menggunakan otentikasi pasangan kunci ssh.
sumber
ssh -t computer-b "ssh -t computer-c 'ssh computer-d'"
: DAnda mungkin ingin menggunakan ProxyCommand SSH: http://benno.id.au/blog/2006/06/08/ssh_proxy_command
sumber
Jika Anda menggunakan kunci ssh, Anda dapat membuat kunci baru untuk mesin B dan menggunakannya untuk koneksi dari A ke B. Pada mesin B, Anda dapat menambahkan
dalam
~/.ssh/authorized_keys
file. Itu berarti bahwa setiap kali Anda terhubung ke B dengan kunci ssh itu, ia akan menjalankanssh C
perintah.Saya tidak tahu apakah ini bekerja dengan scp.
sumber
Menggunakan
ProxyCommand
Lihat
man ssh_config
. Saya sarankan memanfaatkanProxyCommand
. Mari kita ambil skenario asli Anda:Edit
~/.ssh/config
dengan konten berikut.Sekarang Anda akan dapat mencapai Komputer C. secara transparan
Keuntungan dari metode ini
Lebih aman
Anda hanya perlu kunci pribadi Anda berada di Komputer A (komputer Anda). The
nc
perintah akan bertindak sebagai proxy di mana SSH akan mengenkripsi lalu lintas melalui. Ini termasuk otentikasi. Merupakan ide yang sangat buruk untuk mendistribusikan kunci pribadi Anda ke beberapa server (karena setiap server yang dikompromikan dengan kunci pribadi Anda pada akhirnya akan mengkompromikan kunci pribadi Anda).Cocok dengan Banyak tujuan
Satu dapat mencocokkan beberapa komputer tujuan menggunakan
Host
. Komputer tunggal atau komputer apa pun dalam jaringan tertentu (misalnya192.168.35.0/24
dalam contoh di atas) untuk mem-proxy melalui Komputer B. Ini juga berfungsi sebagai alias.Pada contoh di atas, itu akan proksi melalui Komputer B untuk sampai ke alamat IP.
Proxy rantai daisy
Dengan menggunakan metode ini, Anda dapat membuat daisy chain sebanyak mungkin proksi otomatis. mis. Anda dapat menambahkan Komputer D yang hanya dapat dijangkau dari Komputer C dan akan berfungsi secara transparan.
ssh computerd
akan secara otomatis mem-proxy melalui Komputer C dan Komputer B dalamssh_config
contoh di atas .sumber