12. SSH va masofaviy boshqaruv — 15 ta savol-javob
Avval javobni o'zingiz ayting, so'ng ochib solishtiring.
1. SSH nimani hal qiladi? Telnet'dan farqi?
Javob
SSH (Secure Shell) — ishonchsiz tarmoq orqali masofaviy mashinaga xavfsiz kirish va buyruq bajarish protokoli. Barcha trafik (login, parol, buyruqlar) shifrlanadi va server haqiqiyligi tekshiriladi. Telnet/rlogin hamma narsani ochiq matn bilan yuboradi, shu sabab parolni tarmoqda tinglab olish mumkin edi. Port: 22 (TCP).
2. SSH ulanishi qanday o'rnatiladi?
Javob
1) TCP ulanish. 2) Protokol versiyasi va algoritmlar kelishiladi. 3) Kalit almashinuvi: sessiya uchun umumiy simmetrik kalit hosil qilinadi. 4) Mijoz server host kalitini tekshiradi (known_hosts). 5) Foydalanuvchi autentifikatsiyasi (kalit yoki parol). 6) Shifrlangan kanal ichida shell yoki buyruq. Autentifikatsiyadan oldin kanal allaqachon shifrlangan.
3. Kalit asosida autentifikatsiya parolga nisbatan qanday ishlaydi va nega yaxshiroq?
Javob
Foydalanuvchi kalit juftligini yaratadi: maxfiy kalit mijozda qoladi, ochiq kalit serverdagi ~/.ssh/authorized_keys ga qo'yiladi. Server tasodifiy vazifa yuboradi, mijoz uni maxfiy kalit bilan imzolaydi, server ochiq kalit bilan tekshiradi; maxfiy kalit tarmoqqa chiqmaydi. Brute-force bilan topib bo'lmaydi va parol oqib ketish xavfi yo'q. Maxfiy kalitni passphrase bilan himoyalash tavsiya etiladi.
4. authorized_keys va ~/.ssh ruxsatlari qanday bo'lishi kerak?
Javob
~/.ssh — 700, authorized_keys — 600, maxfiy kalit — 600, uy katalogi guruh/boshqalar tomonidan yozib bo'lmaydigan. sshd (StrictModes yes) ruxsatlar keng bo'lsa kalitni e'tiborsiz qoldiradi va parol so'raydi yoki Permission denied (publickey) beradi. Sabab journalctl -u ssh yoki ssh -v da ko'rinadi.
5. known_hosts nima? "REMOTE HOST IDENTIFICATION HAS CHANGED" nimani bildiradi?
Javob
Mijoz tanigan serverlar host kalitlarining barmoq izlarini saqlaydi. Keyingi ulanishda kalit mos kelmasa, ogohlantirish chiqadi, chunki bu serverni qayta o'rnatish (yangi kalit) yoki man-in-the-middle hujumi belgisi bo'lishi mumkin. Avval sababni mustaqil kanal orqali aniqlang, so'ng ssh-keygen -R host bilan eski yozuvni o'chiring. Ogohlantirishni ko'r-ko'rona o'chirish xavfli.
6. ssh-agent nima va agent forwarding'ning xavfi nima?
Javob
ssh-agent passphrase bilan himoyalangan maxfiy kalitni xotirada ochiq holda saqlaydi, shunda uni har safar kiritmaysiz. Agent forwarding (-A) agent soketini masofaviy serverga ham uzatadi: u serverda root huquqiga ega kimdir shu soket orqali sizning nomingizdan boshqa serverlarga kira oladi. Ishonchsiz serverga ulanganda -A dan qoching; buning o'rniga ProxyJump ishlating.
7. Mijoz va server konfiguratsiyasi farqi: ~/.ssh/config va /etc/ssh/sshd_config?
Javob
~/.ssh/config — mijoz tomoni: taxalluslar (Host), HostName, User, IdentityFile, ProxyJump, Port. /etc/ssh/sshd_config — server tomoni: kim, qanday va qayerdan kira olishi (PermitRootLogin, PasswordAuthentication, AllowUsers, Port). Ular bir-biriga bog'liq emas. Server sozlamasidagi amaldagi qiymat sshd -T bilan ko'riladi.
8. SSH'ni qotirish (hardening) uchun asosiy sozlamalar qaysilar?
Javob
PermitRootLogin no, PasswordAuthentication no (faqat kalit), PubkeyAuthentication yes, AllowUsers/AllowGroups bilan kirishni cheklash, MaxAuthTries pasaytirish, zamonaviy algoritmlar, kerak bo'lmasa X11Forwarding no, fail2ban bilan brute-force bloklash, va imkon bo'lsa 2FA. Hamma o'zgarish sshd -t bilan tekshiriladi.
9. SSH konfiguratsiyasini o'zgartirgach, o'zingizni qanday serverdan chiqib ketishdan saqlaysiz?
Javob
sshd -t bilan sintaksisni tekshirish; restart o'rniga reload (mavjud sessiyalar uzilmaydi); joriy sessiyani yopmasdan ikkinchi terminalda yangi ulanishni sinash; parol kirishini o'chirishdan oldin kalit bilan kirish ishlashini tasdiqlash; konsolga (VM/cloud) kirish imkoni saqlash. Aks holda xato sozlama serverga kirishni butunlay yopib qo'yadi.
10. SSH tunnel turlari: -L, -R, -D farqi nima?
Javob
-L (local) — lokal portni masofaviy tomondagi manzilga yo'naltiradi: ichki serverdagi xizmatga lokalda ulanish. -R (remote) — masofaviy serverdagi portni lokal xizmatga yo'naltiradi (NAT ortidagi xizmatni tashqariga ochish). -D (dynamic) — lokal SOCKS proxy, barcha trafik server orqali o'tadi. -N shell ochmasdan faqat tunnel.
11. scp va rsync farqi nima? Qaysini qachon tanlaysiz?
Javob
scp — oddiy bir martalik nusxalash, hamma narsani qayta yuboradi. rsync — faqat farqni yuboradi (o'zgargan qismlar), uzilgan ko'chirishni davom ettiradi, --dry-run, --delete, ruxsatlarni saqlash va siqishni qo'llaydi. Katta kataloglar, zaxira va takroriy sinxronlash uchun rsync afzal. Manba yo'l oxiridagi / mazmunni nusxalash yoki katalogning o'zini nusxalashni belgilaydi.
12. Portni 22 dan o'zgartirish xavfsizlikni oshiradimi?
Javob
Faqat avtomatik skanerlar jurnaldagi shovqinni kamaytiradi, lekin haqiqiy himoya emas ("security through obscurity"): hujumchi barcha portlarni skanerlaydi. Haqiqiy himoya — kalit asosida kirish, root login'ni taqiqlash, fail2ban, firewall cheklovi va yangilanishlar. Port o'zgartirsangiz, firewall va SELinux'ni ham moslashtirishni unutmang.
13. ed25519 va RSA kalitlari farqi? Passphrase nima uchun kerak?
Javob
ed25519 — zamonaviy, kalit qisqa, tez va xavfsiz, hozirgi standart tanlov. RSA eski, xavfsiz bo'lishi uchun kamida 3072–4096 bit kerak. Passphrase maxfiy kalit fayli o'g'irlanganda ham uni ishlatishga to'sqinlik qiladi (kalit shifrlangan holda saqlanadi); ssh-agent bilan qulaylik saqlanadi.
14. Jump host (bastion) nima va ProxyJump qanday ishlaydi?
Javob
Bastion — ichki tarmoqqa yagona nazorat qilinadigan kirish nuqtasi. ssh -J bastion ichki-server yoki konfiguratsiyada ProxyJump bastion ulanishni bastion orqali o'tkazadi. Maxfiy kalit bastionga yuborilmaydi (agent forwarding'dan xavfsizroq), faqat shifrlangan kanal uzatiladi. Kirish loglari bir joyda yig'iladi.
15. SSH ulanishi muvaffaqiyatsiz bo'lsa, tashxis qanday olib boriladi?
Javob
Mijozda ssh -vvv (qaysi kalitlar taklif qilingan, qaysi usullar qabul qilinadi). Serverda journalctl -u ssh yoki auth.log. Tartib: Connection refused — xizmat/port; Connection timed out — tarmoq/firewall; Permission denied (publickey) — kalit yoki ruxsat; Host key verification failed — known_hosts. Server tomonida sshd -T amaldagi sozlamani ko'rsatadi.