Saya merasa nyaman dengan menggunakan fitur ProxyCommand dari ssh dan dapat menggunakannya untuk melompat melalui host benteng mulitple untuk mencapai host terakhir secara efisien. Tapi sepertinya saya tidak mengerti bagaimana cara kerjanya di backend.
Untuk misalnya. Saya memiliki file konfigurasi berikut.
Host final
Hostname final.com
Port 22
AgentForwarding yes
User guestuser
ProxyCommand "ssh [email protected] -W %h:%p"
Saya mengerti bahwa untuk menghubungkan ke host final
, ProxyCommand akan berjalan sebelum membuat koneksi final.com
. Tapi sepertinya saya masih tidak mengerti urutan koneksi.
Dan apa yang dilakukan opsi -W %h:%p
? Saya mengerti bahwa ini adalah fitur netcat dan mirip dengan nc %h %p
.
Jadi sejauh pemahaman saya di sini adalah urutan operasi. Mohon beri tahu saya jika saya salah. Saya akan menggunakan file konfigurasi yang ditentukan di atas dalam contoh saya.
- Pengguna masuk
ssh final
- Koneksi ssh ke bastion.com dibuat.
- Terowongan netcat dibuat dari bastion.com ke port 22 dari final.com. Stdin dari netcat terhubung ke shell yang diperoleh dari koneksi ke bastion.com.
- Jadi sekarang kami memiliki koneksi dari sistem kami ke final.com. Bagian pertama dari koneksi ini adalah koneksi ssh dari sistem kami ke bastion.com. Bagian kedua dari koneksi ini adalah terowongan netcat dari bastion.com ke final.com.
- Sekarang
ssh final
perintah mengambil koneksi di atas sebagai proxy dan tunnels datanya melalui koneksi yang ada ini.
Selain itu saya juga ingin tahu apakah teknik ini juga dikenal sebagai ssh stacking ?
menambahkan linebreaks
sumber