Anda sedang mencampur otentikasi mesin server ke mesin klien, dan otentikasi pengguna ke mesin server.
Otentikasi server
Salah satu hal pertama yang terjadi ketika koneksi SSH sedang dibuat adalah bahwa server mengirimkan kunci publiknya ke klien, dan membuktikan (berkat kriptografi kunci publik ) kepada klien bahwa ia mengetahui kunci privat terkait. Ini mengotentikasi server: jika bagian protokol ini berhasil, klien tahu bahwa server adalah siapa yang berpura-pura.
Klien dapat memeriksa apakah server tersebut adalah server yang dikenal, dan bukan server jahat yang mencoba mengirimkannya sebagai server yang benar. SSH hanya menyediakan mekanisme sederhana untuk memverifikasi keabsahan server: ia mengingat server yang sudah Anda sambungkan, dalam ~/.ssh/known_hosts
file di mesin klien (ada juga file sistem-lebar /etc/ssh/known_hosts
). Pertama kali Anda terhubung ke server, Anda perlu memeriksa dengan beberapa cara lain bahwa kunci publik yang disajikan oleh server benar-benar kunci publik dari server yang ingin Anda sambungkan. Jika Anda memiliki kunci publik dari server yang akan Anda sambungkan, Anda dapat menambahkannya ~/.ssh/known_hosts
di klien secara manual.
Otentikasi server harus dilakukan sebelum Anda mengirim data rahasia apa pun ke dalamnya. Khususnya, jika otentikasi pengguna melibatkan kata sandi, kata sandi tidak boleh dikirim ke server yang tidak diautentikasi.
Otentikasi pengguna
Server hanya mengizinkan pengguna jarak jauh masuk jika pengguna itu dapat membuktikan bahwa mereka memiliki hak untuk mengakses akun itu. Bergantung pada konfigurasi server dan pilihan pengguna, pengguna dapat menyajikan salah satu dari beberapa bentuk kredensial (daftar di bawah ini tidak lengkap).
- Pengguna dapat memberikan kata sandi untuk akun yang ia coba masuki; server kemudian memverifikasi bahwa kata sandi itu benar.
- Pengguna dapat menyajikan kunci publik dan membuktikan bahwa ia memiliki kunci pribadi yang terkait dengan kunci publik itu. Ini adalah metode yang persis sama yang digunakan untuk mengotentikasi server, tetapi sekarang pengguna mencoba membuktikan identitas mereka dan server memverifikasi mereka. Upaya login diterima jika pengguna membuktikan bahwa dia tahu kunci privat dan kunci publik ada di daftar otorisasi akun (
~/.ssh/authorized_keys
di server).
- Jenis metode lain melibatkan pendelegasian bagian dari pekerjaan otentikasi pengguna ke mesin klien. Ini terjadi di lingkungan yang terkendali seperti perusahaan, ketika banyak mesin berbagi akun yang sama. Server mengotentikasi mesin klien dengan mekanisme yang sama yang digunakan sebaliknya, kemudian bergantung pada klien untuk mengotentikasi pengguna.