Root parolini terib topiş mumkin, kalitni esa yöq. SSH-kalit bilan kiriş beş daqiqalik sozlaşni talab qiladi va serverlar buzilişining eng köp uçraydigan sababini — parollarni terişni yopadi.
Bu qanday işlaydi
SSH-kalit — bu ikkita fayl jufti. Maxfiy kalit (id_ed25519) kompyuteringizda qoladi va heç kimga berilmaydi. Oçiq kalit (id_ed25519.pub) serverdagi authorized_keys fayliga nusxalanadi. Ulanişda server sizda şu juftning maxfiy kaliti borligini tekşiradi — parol tarmoq orqali umuman yuborilmaydi.
Bitta kalitni istalgan miqdordagi serverga qöyiş mumkin. Noutbuk öğirlansa yoki xodim işdan ketsa, uning oçiq kalitini authorized_keys dan öçiriş kifoya — barça serverlarda parollarni almaştiriş şart emas.
1-qadam. Linux yoki macOS’da kalit yarating
Terminalni oçing va bajaring:
ssh-keygen -t ed25519 -C "ivan@company.uz"
Yöl haqidagi savolga Enter bosing — kalit ~/.ssh/id_ed25519 ga saqlanadi. Keyin parol iborasini belgilang: maxfiy kalit öğirlansa, usiz undan foydalanib bölmaydi. Böş iborani faqat skriptlar va bekaplar foydalanadigan kalitlar uçun qoldiring.
Server eski bölsa va ed25519 ni tuşunmasa (CentOS 6 va undan oldingi), RSA-kalit yarating: ssh-keygen -t rsa -b 4096.
1-qadam. Windows 10 va 11 da kalit yarating
Windows 10 (1809 va yangiroq) va Windows 11 da OpenSSH mijozi allaqaçon örnatilgan. PowerShell’ni oçing — administrator böliş şart emas — va öşa buyruqni bajaring:
ssh-keygen -t ed25519 -C "ivan@company.uz"
Kalitlar C:\Users\ISMINGIZ\.ssh\ papkasida paydo böladi. Buyruq topilmasa, komponentni yoqing: «Sozlamalar → Ilovalar → Qöşimça komponentlar → OpenSSH mijozi».
PuTTY. PuTTY orqali ulansangiz, kalitni PuTTYgen’da yarating: EdDSA (Ed25519) turi → Generate → Key passphrase’ni belgilang → Save private key (.ppk fayli). Oçiq kalitni yuqoridagi «Public key for pasting into OpenSSH authorized_keys file» maydonidan nusxalang — u keyingi qadamda kerak.
2-qadam. Kalitni Linux serverga ötkazing
Linux va macOS’dan — bitta buyruq bilan. U server parolini oxirgi marta söraydi va kalitni özi kerakli joyga qöyadi:
ssh-copy-id root@SIZNING_IP
SSH nostandart portda bölsa: ssh-copy-id -p 2222 root@SIZNING_IP.
Windows’dan ssh-copy-id buyruği yöq, şuning uçun PowerShell’da quyidagisidan foydalaning:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@SIZNING_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Qölda (masalan, PuTTYgen kalitidan yoki şaxsiy kabinetdagi konsol orqali): serverga kiring, nano ~/.ssh/authorized_keys faylini oçing va oçiq kalitni bitta qator qilib qöying. Huquqlar şunday bölişi kerak: ~/.ssh papkasi — 700, fayl — 600, aks holda server kalitni e’tiborsiz qoldiradi.
Tekşiring: ssh root@SIZNING_IP server parolisiz kiritişi kerak (agar belgilagan bölsangiz, faqat kalitning parol iborasini söraydi).
2-qadam. Kalitni Windows Server’ga ötkazing
Windows Server 2019, 2022 va 2025 da avval OpenSSH serverini yoqing — administrator PowerShell’ida:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Kalitni qayerga qöyiş foydalanuvçiga boğliq:
- Oddiy foydalanuvçi —
C:\Users\ISM\.ssh\authorized_keysfayliga. - «Administratorlar» guruhidagi foydalanuvçi — umumiy
C:\ProgramData\ssh\administrators_authorized_keysfayliga. Administratorlar uçun foydalanuvçi papkasidagi fayl öqilmaydi — «kalit işlamayapti» degan holatning eng köp uçraydigan sababi şu.
Administrator uçun serverda bajaring (öz oçiq kalitingizni qoştirnoq içiga qöying):
Add-Content -Path C:\ProgramData\ssh\administrators_authorized_keys -Value "ssh-ed25519 AAAA... ivan@company.uz"
icacls.exe C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
Ikkinçi buyruq faylga kirişni faqat administratorlar va tizimga qoldiradi — boşqa huquqlar bilan sshd kalitni qabul qilmaydi. Rusça Windows’da guruh «Администраторы» deb ataladi.
3-qadam. Parol bilan kirişni öçiring
Faqat kalit bilan kiriş işlayotganiga işonç hosil qilganingizdan keyin — aks holda özingizga kirişni yopib qöyasiz. Linux’da /etc/ssh/sshd_config ni oçing va quyidagini qöying:
PasswordAuthentication no
PermitRootLogin prohibit-password
Ubuntu 22.04 va 24.04 da /etc/ssh/sshd_config.d/ papkasini ham tekşiring — 50-cloud-init.conf fayli parollarni qayta yoqişi mumkin. Keyin xizmatni qayta işga tuşiring va joriy oynani yopmasdan yangi oynada kirişni tekşiring:
sudo sshd -t && sudo systemctl restart ssh
Windows Server’da xuddi şu narsa C:\ProgramData\ssh\sshd_config faylida: PasswordAuthentication no, keyin Restart-Service sshd.
Kalitni bir serverdan boşqasiga
rsync orqali bekaplar, deploy yoki baza replikatsiyasi uçun bitta server boşqasiga parolsiz kirişi kerak. A serverda kalit yarating va uni B serverga ötkazing:
ssh-keygen -t ed25519 -f ~/.ssh/backup_key -N "" -C "backup@server-a"
ssh-copy-id -i ~/.ssh/backup_key.pub user@SERVER_B
ssh -i ~/.ssh/backup_key user@SERVER_B "hostname"
Bunday kalitlar uçun B serverda minimal huquqli alohida foydalanuvçi oçing — root emas. Şaxsiy maxfiy kalitingizni serverlarga nusxalamang: serverdan serverga ötiş kerak bölsa, ssh -A yoki ssh -J (jump-xost) dan foydalaning.
Qulaylik: ~/.ssh/config fayli
Har safar IP, port va kalit yölini termaslik uçun serverlarni ~/.ssh/config da tasvirlang (Windows’da — C:\Users\ISM\.ssh\config):
Host prod
HostName 185.0.0.10
User deploy
Port 2222
IdentityFile ~/.ssh/id_ed25519
Endi ssh prod kifoya, scp va rsync ham bu nomni xuddi şunday tuşunadi.
Kiritmasa
ssh -v root@SIZNING_IPni işga tuşiring — natijada qaysi kalit taklif qilinayotgani va server nima javob bergani körinadi.- Linux:
~/.sshhuquqlari — 700,authorized_keys— 600, egasi — foydalanuvçining özi. Server xatolari —journalctl -u sshda. - Windows Server: administrator → kalit
administrators_authorized_keysda, huquqlar icacls orqali. Jurnal — «Hodisalarni köriş → Ilovalar va xizmatlar jurnallari → OpenSSH». authorized_keysdagi kalit bitta qator bölişi kerak: PuTTYgen yoki messenjerdan nusxalaşda köpinça qator köçişlari paydo böladi.
MyCloud VPS’ida sizda doimo zaxira kiriş bor — mcvps.uz şaxsiy kabinetidagi server konsoli: SSH sozlamalarida xato qilsangiz, u orqali hammasini tuzatiş mumkin. Ubuntu, Debian yoki Windows Server bilan server VPS serverlar sahifasida yaratiladi.
Maqoladagi vazifada yordam kerakmi?
Konfiguratsiyani tanlaymiz, narxini hisoblaymiz va köçişda yordam beramiz.