Masuk pertama:
- L mengirimkan permintaan autentikasi nama pengguna dan SSH ke S1
- S1 mengembalikan mekanisme autentikasi SSH yang tersedia, dengan "sandi" sebagai salah satunya
- L mengambil "kata sandi" dan mengirimkan kata sandi biasa ke S1
- S1 memberikan nama pengguna dan kata sandi ke tumpukan PAM.
- Pada S1, PAM (biasanya
pam_krb5
ataupam_sss
) meminta TGT (tiket pemberian tiket) dari Kerberos KDC.- S1 mendapatkan TGT.
- Gaya lama (tanpa preauth):S1 mengirimkan AS-REQ dan menerima AS-REP yang berisi TGT.
- Gaya baru (dengan preauth):S1 menggunakan kata sandi Anda untuk mengenkripsi stempel waktu saat ini, dan melampirkannya ke AS-REQ. Server mendekripsi stempel waktu dan memverifikasi bahwa itu berada dalam kemiringan waktu yang diizinkan; jika dekripsi gagal, kata sandi langsung ditolak. Jika tidak, TGT dikembalikan di AS-REP.
- S1 mencoba mendekripsi TGT menggunakan kunci yang dibuat dari kata sandi Anda. Jika dekripsi berhasil, sandi dianggap benar.
- TGT disimpan ke cache kredensial yang baru dibuat. (Anda dapat memeriksa
$KRB5CCNAME
variabel lingkungan untuk menemukan ccache, atau gunakanklist
untuk membuat daftar isinya.)
- S1 mendapatkan TGT.
- S1 menggunakan PAM untuk melakukan pemeriksaan otorisasi (tergantung konfigurasi) dan membuka sesi.
- Jika
pam_krb5
dipanggil dalam tahap otorisasi, memeriksa apakah~/.k5login
ada. Jika ya, itu harus mencantumkan prinsipal klien Kerberos. Jika tidak, satu-satunya kepala sekolah yang diizinkan adalahusername@DEFAULT-REALM
.
- Jika
Masuk kedua:
- S1 mengirimkan nama pengguna dan permintaan autentikasi SSH ke S2
- S2 mengembalikan mekanisme autentikasi yang tersedia, salah satunya adalah "gssapi-with-mic"
- S1 meminta tiket untuk
host/s2.example.com@EXAMPLE.COM
, dengan mengirimkan TGS-REQ dengan TGT ke KDC, dan menerima TGS-REP dengan tiket layanan darinya. - S1 membuat "AP-REQ" (permintaan autentikasi) dan mengirimkannya ke S2.
- S2 mencoba mendekripsi permintaan. Jika berhasil, autentikasi selesai. (PAM tidak digunakan untuk autentikasi.)
- Protokol lain seperti LDAP dapat memilih untuk mengenkripsi transmisi data lebih lanjut dengan "kunci sesi" yang disertakan dengan permintaan; namun, SSH telah menegosiasikan lapisan enkripsinya sendiri.
- Jika autentikasi berhasil, S2 menggunakan PAM untuk melakukan pemeriksaan otorisasi dan membuka sesi, sama seperti S1.
- Jika penerusan kredensial diaktifkan dan TGT memiliki bendera "dapat diteruskan", maka S1 meminta salinan TGT pengguna (dengan set bendera "diteruskan") dan mengirimkannya ke S2, tempat salinan itu disimpan ke ccache baru . Hal ini memungkinkan login berulang yang diautentikasi Kerberos.
Perhatikan bahwa Anda juga dapat memperoleh TGT secara lokal. Di Linux, Anda dapat melakukannya menggunakan kinit
, lalu sambungkan menggunakan ssh -K
. Untuk Windows, jika Anda masuk ke domain AD Windows, Windows melakukannya untuk Anda; jika tidak, MIT Kerberos dapat digunakan. Putty 0.61 mendukung penggunaan Windows (SSPI) dan MIT (GSSAPI), meskipun Anda harus mengaktifkan penerusan (delegasi) secara manual.
gssapi-keyex
juga memungkinkan tetapi tidak diterima di OpenSSH resmi.
Bagaimana cara membuat kata sandi hash SHA-512 untuk shadow?
Meneruskan surat masuk di server Linux?