Dua alias SSH, satu server: VPN langsung atau host lompat
Pertahankan jalur VPN yang disetujui dan jalur bastion yang disetujui sebagai alias dan markah terpisah, agar tidak ada pintasan yang harus menebak rute mana yang diizinkan.
Server privat yang sama menjawab melalui VPN yang disetujui dan melalui bastion yang disetujui, dan Anda ingin satu markah Emacs untuk masing-masing alih-alih pintasan yang menebak. Keputusannya bukan jalur mana yang lebih baik; melainkan jalur mana yang diizinkan untuk pekerjaan di depan Anda. Pertahankan keduanya eksplisit, beri nama terpisah, dan biarkan nama berkas mengatakan mana yang Anda pilih.
Syarat satu: jalur mana yang disetujui?
Host lompat bukan cadangan otomatis atas persyaratan VPN, dan VPN bukan lisensi untuk melewati bastion yang disetujui. Tanyakan rute mana yang diizinkan untuk akun Anda dan untuk data ini. Jika keduanya diizinkan, Anda punya pilihan; jika hanya satu, kumpulan markah memiliki satu entri. Jawaban itu datang dari pemilik data, bukan dari rute yang kebetulan berfungsi hari ini.
Tuliskan jawabannya, karena perbedaan itu cepat hilang saat insiden.
Kedua jalur juga memerlukan konfigurasi akun dan identitasnya sendiri. Alias bersama yang berfungsi melalui satu rute bisa gagal melalui rute lain karena alasan yang tidak ada hubungannya dengan jaringan.
Syarat dua: dapatkah Anda menamai setiap jalur secara berbeda?
Konfigurasi SSH dapat memuat dua alias host untuk satu alamat, masing-masing dengan perilaku proksi berbeda. Letakkan blok spesifik sebelum kartu liar yang lebar, karena nilai pertama yang diperoleh menang untuk sebagian besar opsi.
Host proj-direct proj-bastion
HostName 10.60.0.21
User analyst
ControlPath none
Host proj-direct
ProxyJump none
Host proj-bastion
ProxyJump gw.example.com
Alamat di atas hanyalah contoh; gantilah dengan alamat yang didokumentasikan tim Anda. Alias lompat juga memerlukan akun bastion yang disetujui, yang biasanya berarti blok Host kedua untuk bastion itu sendiri. Menonaktifkan berbagi koneksi di sini menjaga perbandingan jalur tetap jujur, karena koneksi multipleks yang dipakai ulang bisa hidup lebih lama daripada perubahan rute yang hendak Anda amati.
Kemudian nama berkas jarak jauh tetap berbeda dan terbaca.
/ssh:proj-direct:/srv/project/README.md
/ssh:proj-bastion:/srv/project/README.md
Syarat tiga: apakah editor mengetahui perbedaannya?
TRAMP memperlakukan kedua nama berkas itu sebagai tujuan yang berbeda, dan itulah yang Anda inginkan. Tandai masing-masing dengan nama yang menyebut jalur mana yang dipakainya, dan buka kembali markahnya alih-alih mengubah makna satu tujuan. Dua markah juga membuat perbandingan terlihat: Anda dapat membuka keduanya dan melihat mana yang gagal tanpa mengubah konfigurasi apa pun.
Satu pengaturan patut diperhatikan saat ProxyJump terlibat: berbagi koneksi TRAMP harus mati untuk koneksi yang bersangkutan, jadi setel tramp-use-connection-share ke nil sebelum membukanya. Itu pengaturan kompatibilitas, bukan perbaikan rute yang hilang, dan tidak membuat jalur yang tidak diizinkan menjadi diizinkan. FAQ TRAMP mendokumentasikan markah sebagai cara yang didukung untuk memperpendek nama-nama ini.
Markah yang diam-diam berganti rute lebih buruk daripada tidak ada markah sama sekali.
Mengapa ikon jaringan tidak membuktikan apa pun
Nilai status keseluruhan 70 dari NetworkManager berarti mesin memiliki konektivitas global. Nilai itu tidak menyebut profil VPN apa pun, dan Wi-Fi biasa memenuhinya. Terowongan khusus jaringan privat yang membawa tepat rute yang Anda butuhkan dapat membiarkan nilai agregat itu tak tersentuh. Itulah sebabnya pintasan yang terikat pada ikon dapat melaporkan kesiapan untuk jalur yang tidak pernah diujinya.
Baca status koneksi tertentu alih-alih status global.
Jika Anda mengotomatiskan sesuatu, tanyakan koneksi yang dinamai, lalu periksa rute tujuan, jawaban resolver, dan keterjangkauan SSH dalam urutan itu. Masing-masing dapat gagal saat yang sebelumnya berhasil, dan merangkumnya menjadi satu boolean adalah cara otomatisasi akhirnya melaporkan keberhasilan untuk jalur yang tidak pernah dipakainya.
Apa yang harus dilakukan saat sebuah jalur berhenti berfungsi
Simpan buffer Anda sebelum menyelidiki, karena sesi TRAMP yang ada bisa hidup lebih lama daripada perubahan rute lalu gagal pada penulisan berikutnya. Tutup melalui pembersihan yang didukung, buka kembali markahnya, dan bandingkan kedua jalur alih-alih menganggap server sedang mati.
Pertahankan verifikasi kunci host aktif untuk bastion maupun tujuan.
Rute yang berbeda tidak memberi Anda hak untuk menerima kunci server yang tidak Anda duga, dan juga tidak membuat jalur yang tidak disetujui menjadi dapat diterima. Keduanya keputusan terpisah dari keputusan yang sedang Anda ambil.