Satu mesin menjangkau mesin lain melalui VPN, dan seseorang kini menginginkan shell yang sama melalui jaringan privat penyedia. Rute ada, ping berhasil, tetapi SSH tetap menolak. Penyebab umumnya adalah daemon tidak pernah mendengarkan di alamat baru, sehingga tidak ada yang bisa dihubungi. Ini masalah pengikatan alamat sebelum menjadi masalah firewall.

Mengapa rute baru tidak membuat pendengar baru

Socket pendengar dibuat oleh proses yang menyebutkan alamat yang akan diterimanya. Rute hanya memberi tahu paket ke mana harus pergi; rute itu tidak membuat pendengar di tujuan. Saat sshd dikonfigurasi dengan satu ListenAddress, koneksi ke alamat lokal lain ditolak meskipun antarmuka aktif. Hal yang sama berlaku untuk unit socket yang memiliki port, itulah sebabnya pemeriksaan pertama selalu apa yang benar-benar mendengarkan.

Bandingkan kedua jalur berdasarkan alamat tujuan, bukan nama antarmuka. Klien terhubung ke suatu alamat, dan alamat itu harus terikat sebelum aturan firewall mana pun menjadi penting.

Daftar alamat dan pendengar

Sebelum mengedit apa pun, catat alamat pada host dan socket yang ada saat ini.

ip -br addr
ss -ltnp | grep ':22'

Daftar alamat menunjukkan alamat privat mana yang nyata dan di antarmuka mana, sedangkan daftar socket menunjukkan apakah ada yang terikat padanya. Pendengar pada 0.0.0.0:22 sudah menerima setiap alamat, jadi pengikatan baru tidak menambah apa pun. Pendengar pada satu alamat tertentu menjelaskan penolakan itu segera. Jika port dimiliki oleh unit socket, bukan daemon, konfigurasi daemon bukan keseluruhan cerita.

Tambahkan pengikatan dan pertahankan yang lama

OpenSSH menerima beberapa entri ListenAddress, sehingga jalur VPN dapat tetap ada saat jalur privat ditambahkan. Uji file sebelum memuat ulang.

sshd -t
systemctl reload sshd

Uji konfigurasi yang gagal membiarkan daemon yang berjalan tidak tersentuh, dan itulah yang Anda inginkan saat terhubung melalui jalur yang sedang Anda edit. Pertahankan entri yang ada, tambahkan alamat lokal baru, dan pastikan layanan dimuat ulang tanpa memutus sesi saat ini. Pada instalasi yang diaktifkan socket, tambahkan alamat ke unit socket dan muat ulang unit itu. Lalu baca daftar pendengar lagi, karena pengikatan yang tidak pernah muncul berarti komponen yang salah telah diedit.

Verifikasi sesi baru sebelum menutup yang lama

Hubungkan ke alamat baru selagi sesi asli masih terbuka, dengan keluaran verbose untuk melihat alamat dan kunci mana yang digunakan. Biarkan sesi asli tetap terbuka sampai pemeriksaan berhasil dua kali.

ssh -v [email protected]

Baca baris debug untuk alamat tujuan dan kunci host yang disajikan. Konfirmasikan sidik jari kunci host terhadap nilai yang sudah Anda percayai, bukan menerima kunci tak dikenal karena jaringan disebut privat. Tujuan baru memerlukan entri known_hosts sendiri, dan itu wajar. Sesi manajemen lama baru boleh ditutup setelah jalur privat berfungsi.

SSH melindungi transport, tetapi tidak membuat dua jaringan setara secara terpisah. Putuskan apakah kepercayaan transit privat cocok dengan data sebelum mengandalkannya.

Artikel terkait