Balasan ping dan login SSH yang ditolak bisa sama-sama benar pada saat yang sama, dan pasangan itu tidak menyalahkan tunnel. Balasan echo dan koneksi TCP ke port 22 adalah pengujian berbeda dengan pemilih berbeda, kebijakan berbeda, dan sering tujuan berbeda. Rekam satu percobaan SSH yang disengaja, lalu sebutkan tahap terakhir yang dicapainya. Satu artefak itu menggantikan selusin perubahan konfigurasi spekulatif.

Rekam satu percobaan, bukan sesi menusuk-nusuk

Jalankan klien sekali dengan diagnostik verbose, berbagi koneksi dinonaktifkan, dan batas waktu koneksi yang terbatas. Menonaktifkan berbagi penting karena koneksi utama yang sudah diautentikasi akan menjawab untuk percobaan baru dan menyembunyikan kegagalan yang Anda kejar.

ssh -4 -vv -o ControlPath=none -o ConnectTimeout=10 [email protected]

Simpan tujuan, keluarga alamat, stempel waktu, dan kesalahan terakhir yang bukan rahasia. Flag IPv4 juga berarti percobaan ini tidak mengatakan apa pun tentang jalur IPv6 ke nama yang sama, jadi jangan menggeneralisasi darinya. Catat dari mana percobaan dilakukan. Pemeriksaan di gateway VPN bukan sudut pandang yang sama dengan laptop di belakangnya, dan sebagian besar pertentangan dalam tiket ini berasal dari mencampur keduanya.

Tahap satu dan dua: TCP sebelum SSH

Batas pertama adalah keterjangkauan soket: alamat, port, dan rute yang benar-benar diikuti paket. Jika koneksi TCP tidak pernah selesai, belum ada apa pun di atasnya, dan kunci host serta akun tidak relevan.

nc -vz 10.90.4.20 22
ip route get 10.90.4.20
tcpdump -ni any 'host 10.90.4.20 and port 22'

Korelasikan rekaman dengan percobaan klien. SYN yang keluar dan tidak ada yang kembali menunjuk ke pemfilteran, pemilih, atau rute yang hilang di sisi jauh; balasan dengan reset menunjuk ke sesuatu yang menolak secara aktif alih-alih menjatuhkan. Batas kedua adalah pertukaran protokol SSH itu sendiri. Koneksi TCP yang selesai lalu macet telah melewati keterjangkauan dan masuk ke negosiasi, respons server, atau penanganan paket. Itu penyelidikan lain, dan di situlah masalah terkait ukuran pertama kali menjadi masuk akal.

Tahap tiga: kunci siapa yang menjawab

Setelah transport aktif, klien memverifikasi kunci host server. Penolakan di sini adalah pernyataan tentang identitas, bukan tentang kriptografi: rekan menyajikan kunci yang tidak diterima kebijakan Anda. Perlakukan itu sebagai syarat berhenti dan verifikasi di luar jalur, terhadap konsol atau operator yang membangun ulang host. Menghapus entri yang diingat untuk membersihkan peringatan adalah satu-satunya jalan pintas yang harus ditolak, karena menghancurkan bukti bahwa sesuatu menjawab secara tak terduga.

Jika host memang dibangun ulang, hapus catatan lama hanya setelah sidik jari baru dikonfirmasi, dan catat tanggal serta alasannya. Insinyur berikutnya akan menemui peringatan yang sama dan membutuhkan konteks itu.

Tahap empat dan lima: akun versus izin

Autentikasi adalah batas keempat. Kredensial yang ditolak berarti server mengevaluasi percobaan dan menolaknya; periksa akun, jenis kredensial yang diterima server, dan kebijakan server itu sendiri alih-alih kata sandi VPN. Batas kelima adalah otorisasi setelah login berhasil. Pengguna yang terautentikasi masih bisa ditolak shell, perintah, subsistem, atau penerusan, dan penolakan itu tampak seperti kegagalan bagi orang yang hanya membaca baris terakhir klien.

Last stage reachedWhat it provesWhere to look next
No TCP connectionNo SSH transport existsAddress, port, route, selectors, filter, listener
TCP up, exchange incompleteReachability is not the blockerServer response, negotiation, packet handling
Host identity rejectedThe peer is not the expected hostIndependently verified host key
User authentication rejectedThe attempt reached authenticationAccount, credential and server policy
Authenticated, session deniedLogin succeeded, the operation did notShell, command or forwarding permission

Berhenti setelah beberapa percobaan kata sandi gagal. Tebakan berulang menghasilkan penguncian yang kemudian tampak seperti kesalahan kedua yang tidak terkait dan memakan lebih banyak waktu daripada tiket awal.

Pengembalian dan catatan yang Anda simpan

Ubah satu hal pada satu waktu, dan catat apa yang Anda ubah sebelum menguji ulang. Jika suatu perubahan memperburuk percobaan, segera kembalikan alih-alih menumpuk perbaikan lain di atasnya. Ulangi operasi asli dari klien dan konteks asli. Login berhasil dari mesin lain, pada keluarga alamat lain, bukan reproduksi dan tidak membuktikan perbaikannya.

Sanitasi apa yang Anda bagikan. Keluaran klien verbose dapat membawa nama internal, label akun, jalur kunci, dan pengenal kunci publik, jadi terbitkan kesimpulan bertahap alih-alih jejak mentah.

Artikel terkait