SSH kalit nima va u qanday ishlaydi
SSH kalit autentifikatsiyasi parol o'rniga ikkita kalitdan iborat juftlik ishlatadi: private key (foydalanuvchida) va public key (serverda). Foydalanuvchi serverga ulanmoqchi bo'lganida, server tasodifiy challenge yuboradi. Mijoz uni private key bilan imzolaydi va serverga qaytaradi. Server public key orqali imzoni tekshiradi va to'g'ri bo'lsa, kirishga ruxsat beradi.
Bu mexanizm parolga qaraganda xavfsizroq, chunki private key hech qachon tarmoq orqali uzatilmaydi. Brute force hujumi amalda imkonsiz, chunki 4096-bitli RSA yoki Ed25519 kalitni topish uchun millionlab yillar kerak. Lekin xavf insondan kelib chiqadi: noto'g'ri saqlangan private key barcha himoyalarni buzadi.
Kalit algoritmlari va o'lchamlari
Bugungi kunda eng tavsiya etilgan algoritm โ Ed25519. U yangi, tezkor, qisqa (256 bit), lekin RSA-3072 ga teng xavfsizlik beradi. Eski tizimlar uchun RSA ishlatish kerak bo'lsa, kamida 4096 bit bo'lishi shart. DSA va RSA-1024 ham bugun zaif hisoblanadi va ulardan voz kechish kerak.
Sayt.uz amaliyotida barcha yangi kalitlar Ed25519, eski RSA-2048 kalitlar 90 kun ichida qayta yaratiladi. Kalitni yaratish buyrug'i oddiy: ssh-keygen -t ed25519 -C "ish-email@sayt.uz". Tavsif (-C) kalit egasini aniqlashga yordam beradi va auditda foydali.
Passphrase โ qo'shimcha himoya qatlami
Private key fayli o'g'irlansa, hujumchi darhol serverga kirishi mumkin. Passphrase โ bu kalitni shifrlash uchun ishlatiladigan qo'shimcha parol. Hatto fayl o'g'irlangan taqdirda ham, passphrase bo'lmasa, kalit ishlamaydi. Passphrase kuchli (16+ simvol) va parol menejerda saqlanishi kerak.
Ko'pchilik foydalanuvchilar passphrase yozishni noqulay deb hisoblaydi. Lekin ssh-agent bilan birgalikda passphrase faqat bir marta kiritiladi va keyin sessiya davomida xotirada saqlanadi. Sayt.uz qoidalari: barcha production access kalitlari majburiy passphrase bilan, dev muhitlarida ham tavsiya etiladi.
ssh-agent va kalit menejmenti
ssh-agent โ bu fonda ishlovchi xizmat bo'lib, decrypt qilingan kalitlarni xotirada vaqtincha saqlaydi. Bu sizning passphrase ni har safar qayta kiritmasligingizga yordam beradi. Agent ssh-add buyrug'i orqali kalitlarni yuklaydi va sessiya tugagach ularni o'chiradi.
Kichik tafsilot: ssh-agent forwarding xavfli bo'lishi mumkin. Agar siz uzoq serverga ulanib, undan boshqa serverga sakrasangiz, oraliq server sizning agent xotirangizga kirishi mumkin. Yechim โ agent forwarding o'rniga ProxyJump (-J) yoki bastion host orqali ulanish.
Kalit rotatsiyasi va audit
Kalitni vaqti-vaqti bilan almashtirish kerak: shaxsiy ishchi kalitlar 1 yilda bir marta, production server kalitlari 6 oyda bir marta. Avtomatik tizimlar uchun (CI/CD, deploy bot) har 90 kunda yangilanadi. Eski kalit darhol server authorized_keys faylidan olib tashlanadi.
Audit muhim: har bir serverda qaysi kalitlar borligi va ular kimga tegishliligi reestrda saqlanishi kerak. Ansible yoki Terraform orqali authorized_keys avtomatik boshqariladi va ortiqcha kalitlar darhol olib tashlanadi. Login urinishlari /var/log/auth.log da yoziladi va anomaliyalar SIEM tizimiga yuboriladi.
Sayt.uz amaliyot
Sayt.uz da SSH siyosati: barcha kalitlar Ed25519, passphrase majburiy, server tomonida PasswordAuthentication=no, root login man, faqat bastion orqali ulanish, har bir ulanish two-factor (Duo) bilan tasdiqlanadi. Authorized_keys Ansible orqali boshqariladi va o'zgarish git da yoziladi. Har 6 oyda kalitlar rotatsiyasi, har oyda audit hisoboti tayyorlanadi.