SSH-2 protokol memiliki arsitektur internal (didefinisikan dalam RFC 4879) pada lapisan terpisah dengan baik. Yaitu:
Sumber : https://docstore.mik.ua/orelly/networking_2ndEd/ssh/figs/ssh_0301.gif
- Lapisan transportasi
Lapisan ini menangani pertukaran kunci awal dan server otentikasi dan set up enkripsi, kompresi dan integritas verifikasi. Lapisan ini memperlihatkan ke lapisan atas sebuah antarmuka untuk mengirim dan menerima paket teks terang hingga masing-masing 32.768 byte (atau lebih yang diperbolehkan oleh implementasi). Lapisan transportasi juga mengatur ulang pertukaran kunci, biasanya setelah 1 GB data yang ditransfer atau setelah 1 jam telah berlalu, tergantung mana yang lebih cepat.
- Lapisan otentikasi pengguna
Lapisan ini menangani otentikasi klien dan menyediakan sejumlah metode otentikasi. Otentikasi client-driven: ketika seseorang diminta untuk memasukkan password, mungkin diminta oleh klien SSH, bukan servernya. Server hanya menanggapi permintaan otentikasi klien. Metode otentikasi pengguna yang sering digunakan meliputi:
- Password
Sebuah metode untuk otentikasi password secara langsung, termasuk fasilitas yang memungkinkan sandi untuk diubah. Metode ini tidak diimplementasikan pada semua program.
- Kunci Publik (Public Key)
Sebuah metode untuk otentikasi berbasis kunci publik, biasanya mendukung setidaknya pasangan kunci DSA atau RSA, pada implementasi lain juga mendukung sertifikat X.509.
- Keyboard-interactive
Sebuah metode serbaguna di mana server akan mengirimkan satu atau lebih prompt untuk memasukkan informasi sehingga klien menampilkannya dan mengirimkan kembali tanggapan oleh pengguna. Digunakan untuk menyediakan otentikasi password sekali-waktu seperti S/Key atau SecurID. Digunakan oleh beberapa konfigurasi OpenSSH dimana PAM bertindak sebagai penyedia otentikasi host yang mendasar agar secara efektif dapat menyediakan otentikasi password, namun kadang-kadang menyebabkan kegagalan untuk login dengan klien yang hanya mendukung metode otentikasi password biasa.
- Metode Otentikasi API
Metode otentikasi API yang menyediakan sebuah skema extensible untuk melakukan otentikasi SSH menggunakan mekanisme eksternal seperti Kerberos 5 atau NTLM, menyediakan satu kemampuan sign on untuk sesi SSH. Metode ini biasanya digunakan pada implementasikan SSH komersial untuk digunakan dalam organisasi, meskipun OpenSSH memang memiliki implementasi kerja API.
- Password
- Lapisan koneksi
Lapisan ini mendefinisikan konsep kanal, kanal permintaan dan permintaan global menggunakan layanan yang disediakan SSH. Sebuah koneksi SSH dapat melayani beberapa kanal secara bersamaan, masing-masing mentransfer data dalam dua arah. Permintaan kanal tersebut digunakan untuk menyambungkan saluran data spesifik secara out-of-band, seperti perubahan ukuran jendela terminal atau exit code dari sebuah proses server-side. Klien SSH meminta sebuah port server-side untuk diteruskan menggunakan sebuah permintaan global. Jenis saluran standar yang tersedia adalah:
- Shell untuk terminal, SFTP dan request exec (termasuk transfer SCP)
- Direct-tcpip untuk koneksi klien-ke-server yang diteruskan
- Forwarded-tcpip for server-to-client forwarded connections forwarded-tcpip untuk koneksi server-ke-klien yang diteruskan
- SSHFP DNS record
SSHFP DNS record menyediakan sidik jari kunci publik untuk membantu memverifikasi keaslian host.
Sumber :
- https://id.wikipedia.org/wiki/Secure_Shell
- https://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch03_03.htm