Host key — SSH serverining uzoq muddatli kriptografik identifikatsiya kalitidir. Mijoz ulanish vaqtida server shu private keyga egaligini isbotlaydi, mijoz esa public key fingerprintini ilgari ishonilgan qiymat bilan solishtiradi. Bu tekshiruv foydalanuvchi credentialini haqiqiy serverga yuborishga va man-in-the-middle hujumini aniqlashga xizmat qiladi.
Kalit juftligi
Hostda private va public qismlardan iborat bir yoki bir nechta algoritm kaliti bo‘ladi. Private key serverda maxfiy saqlanadi, public key esa SSH handshake davomida mijozga taqdim etiladi. Ed25519, ECDSA va RSA host key algoritmlari uchraydi. Qo‘llab-quvvatlash client, server va xavfsizlik siyosatiga bog‘liq.
Host key user keydan farq qiladi. Host key serverni mijozga tanitadi; foydalanuvchining public keyi esa mijoz nomidan serverga autentifikatsiya uchun ishlatiladi. TLS sertifikati ham server identifikatsiyasiga xizmat qiladi, lekin SSH host key ishonch modeli va protokoli boshqa.
Known hosts tekshiruvi
OpenSSH mijoz odatda ko‘rilgan host kalitini known_hosts faylida hostname yoki IP bilan saqlaydi. Birinchi ulanishda trust on first use modeli bo‘yicha fingerprint foydalanuvchiga ko‘rsatiladi. Agar u mustaqil ishonchli kanal orqali tekshirilmasa, birinchi ulanish paytidagi hujumchi noto‘g‘ri kalitni qabul qildirish ehtimoliga ega.
Keyingi ulanishda kalit o‘zgarsa mijoz kuchli ogohlantirish beradi. Sabab server qayta o‘rnatilishi, load balancer ortidagi boshqa node, DNS xatosi yoki haqiqiy hujum bo‘lishi mumkin. Ogohlantirishni known_hosts qatorini ko‘r-ko‘rona o‘chirish bilan hal qilish xavfli; yangi fingerprint administrator yoki boshqaruv tizimidan tekshiriladi.
Host sertifikatlari
SSH certificate authority host public keyini imzolashi mumkin. Mijoz har host kalitini alohida saqlash o‘rniga ishonchli CA public keyiga tayanadi va sertifikatdagi principal, amal muddati hamda signature ni tekshiradi. Bu ko‘p serverli infratuzilmada kalit aylanishi va yangi host qo‘shishni boshqarishni yengillashtiradi.
Sertifikat TLS X.509 bilan bir xil format emas. OpenSSH o‘z certificate tuzilmasiga ega. CA private key yuqori himoyada saqlanadi; u buzilsa hujumchi ishonchli ko‘rinadigan host sertifikatlari yaratishi mumkin.
Yaratish va klonlash
Host key odatda tizim o‘rnatilganda yoki birinchi bootda yaratiladi. Virtual machine golden image ichiga tayyor private host key qo‘yilsa, barcha klonlar bir xil identifikatsiyaga ega bo‘lib qoladi. Image yaratishda kalitlar tozalanadi va har instance uchun provisioning paytida yangidan hosil qilinadi.
Server clusteri bitta xizmat hostnamei ostida ishlasa, barcha node bir xil host certificatega yoki kelishilgan bir nechta kalitga ega bo‘lishi mumkin. Bitta private keyni barcha nodega nusxalash breach radiusni oshiradi. Host certificate har nodega alohida kalit berib, umumiy CA orqali ishonchni saqlash imkonini beradi.
Aylantirish va bekor qilish
Algoritm eskirganda yoki private key oshkor bo‘lganda host key almashtiriladi. Keskin almashtirish barcha mijozda mismatch keltiradi. OpenSSH host key update mexanizmlari serverga autentifikatsiyalangan sessiya orqali yangi kalitlarni oldindan bildirish imkonini beradi. Reja eski va yangi kalit birga mavjud bo‘ladigan o‘tish davrini belgilaydi.
Compromise holatida eski fingerprint inventardan chiqariladi, sertifikat bo‘lsa revocation ro‘yxati yangilanadi va clientlarga hodisa haqida ishonchli kanal orqali xabar beriladi. Audit qaysi avtomatizatsiya va foydalanuvchi eski kalitga tayanishini ko‘rsatadi.
Bog‘liq tushunchalar
SSH, Public-key cryptography, known_hosts, Fingerprint, SSH certificate, Man-in-the-middle, Key rotation