SSH açarı iki fayldan ibarətdir: kompüterinizdə qalan şəxsi açar və serverə yerləşdirdiyiniz açıq açar. Onu ssh-keygen -t ed25519 ilə yaradın, açıq açarı serverə əlavə edin və parolsuz, xeyli yüksək təhlükəsizliklə daxil olun.
Bu bələdçi Linux, macOS və Windows-u, sonra isə açarlardan istifadəni rahat edən təfərrüatları əhatə edir.
Açarlar niyə parollardan üstündür
İnternetdəki hər server 22-ci portda daimi parol təxmin etmə cəhdləri ilə üzləşir. Güclü parol onları ləngidir; açar isə onları dayandırır, çünki təxmin ediləcək heç nə yoxdur. Açarlar avtomatlaşdırmanı da mümkün edir: skriptlər, deploy alətləri və CI parol saxlamadan daxil ola bilər.
1. Açar yaradın
Linux və macOS
Terminalı açın və işə salın:
ssh-keygen -t ed25519 -C "laptop-2026"
-t ed25519müasir açar növünü seçir.-Cşərh əlavə edir ki, açarı sonradan tanıya biləsiniz. Məxfiliyə üstünlük verirsinizsə, e-poçt ünvanı deyil, cihazın adını yazın.
Standart yolu (~/.ssh/id_ed25519) qəbul edin və parol ifadəsi təyin edin. İndi sizdə bunlar var:
~/.ssh/id_ed25519 # şəxsi açar, heç vaxt paylaşmayın
~/.ssh/id_ed25519.pub # açıq açar, paylaşmaq təhlükəsizdir
Windows 10 və 11
Windows OpenSSH ilə gəlir. PowerShell-i açın və eyni komandanı işə salın:
ssh-keygen -t ed25519 -C "desktop-2026"
Fayllar C:\Users\<you>\.ssh\ qovluğunda yaranır. PuTTY istifadə edirsinizsə, şəxsi açarı PuTTYgen-ə import edib .ppk faylı kimi saxlaya bilərsiniz.
2. Açıq açarınıza baxın
cat ~/.ssh/id_ed25519.pub
Bu, ssh-ed25519 ilə başlayan bir sətirdir. Serverlərə və konsola kopyaladığınız hissə budur.
3. Açarı serverə yerləşdirin
Variant A: server yaradarkən
Ən asan yol. Wolkra konsolunda açıq açarı SSH keys bölməsinə əlavə edin, sonra server yaradarkən onu seçin. Açar ilk yükləmədə root hesabına yazılır və heç bir parol göndərilmir. Bax: SSH ilə qoşulma.
Variant B: ssh-copy-id ilə
Server artıq mövcuddursa və parolla daxil ola bilirsinizsə:
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected] # nümunə ünvan
Variant C: əl ilə
Windows-da və ya ssh-copy-id əlçatan olmadıqda açarı serverin authorized_keys faylına yapışdırın:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo 'ssh-ed25519 AAAA... laptop-2026' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
İcazələr vacibdir. ~/.ssh və ya authorized_keys başqaları tərəfindən yazıla bilirsə, OpenSSH faylı nəzərə almır.
4. Daxil olun
Bir neçə açarınız varsa, istifadə ediləcək açarı göstərin:
ssh -i ~/.ssh/id_ed25519 [email protected]
5. Parol ifadəsini bir dəfə daxil etmək üçün ssh-agent istifadə edin
macOS
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Sonra ~/.ssh/config faylına əlavə edin:
Host *
AddKeysToAgent yes
UseKeychain yes
Linux
Əksər iş masası mühitləri agenti avtomatik işə salır. Əks halda:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Windows
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519
6. SSH konfiqurasiya faylı yazın
Konfiqurasiya faylı uzun komandaları qısa adlara çevirir. ~/.ssh/config faylını yaradın:
Host web
HostName 203.0.113.10
User deploy
IdentityFile ~/.ssh/id_ed25519
Host db
HostName 10.0.0.5
User deploy
ProxyJump web
İndi ssh web birinci serverə qoşulur, ssh db isə web üzərindən keçərək şəxsi şəbəkədəki serverə çatır. İctimai IP-si olmayan serverləri, məsələn şəxsi şəbəkədəkiləri, belə idarə edirsiniz. (Ünvanlar nümunədir.)
7. Eyni açarla faylları kopyalayın
scp və rsync eyni açarlardan və konfiqurasiyadan istifadə edir:
scp backup.tar.gz web:/home/deploy/
rsync -avz ./site/ web:/var/www/site/
8. Serverdə parolla girişi söndürün
Açarla giriş işlədikdən sonra parolları söndürün ki, server yalnız açarları qəbul etsin:
sudo tee /etc/ssh/sshd_config.d/10-keys-only.conf >/dev/null <<'EOF'
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password
EOF
sudo sshd -t && sudo systemctl reload ssh
Yeni sessiyanı sınayarkən mövcud sessiyanı açıq saxlayın. prohibit-password root-a yalnız açarla daxil olmağa icazə verir; sudo istifadəçisi ilə işləməyə keçdikdən sonra onu no olaraq təyin edin. Ətraflı: Ubuntu serverinin qorunması.
9. Açarları dəyişin və ləğv edin
Yaxşı vərdişlər:
- Hər cihaz üçün bir açar. Noutbuk itərsə, yalnız həmin açarı silin.
- Mənalı şərhlər.
laptop-2026tapmaquser@host-dan asandır. authorized_keysfaylını vaxtaşırı yoxlayın və heç kimin istifadə etmədiyi açarları silin.
Açarı ləğv etmək üçün onun sətrini hər serverdə ~/.ssh/authorized_keys faylından silin. Onu əvəz etmək üçün əvvəlcə yeni açarı əlavə edin, sınayın, sonra köhnəsini silin.
10. İstəyə bağlı: aparat açarları
OpenSSH FIDO2 təhlükəsizlik açarlarını dəstəkləyir. Uyğun açar qoşulu olduqda:
ssh-keygen -t ed25519-sk -C "yubikey"
Şəxsi açarı cihazdan kopyalamaq mümkün deyil və hər giriş toxunuş tələb edir. Bu, admin hesabları üçün ən güclü variantdır.
11. Deploy və CI üçün SSH açarlarından istifadə
Avtomatlaşdırılmış sistemlər şəxsi açarınızdan istifadə etməməlidir. Hər sistem üçün parol ifadəsi olmayan ayrıca açar yaradın və onun serverdə nə edə biləcəyini məhdudlaşdırın:
ssh-keygen -t ed25519 -f ~/.ssh/deploy_ci -N "" -C "ci-deploy"
Serverdə authorized_keys faylında açarın qarşısına onu məhdudlaşdıran seçimlər əlavə edin:
from="198.51.100.0/24",no-port-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAAA... ci-deploy
from=açarı yalnız göstərilən diapazondan qəbul edir (burada nümunədir).no-ptyvə yönləndirmə seçimləri interaktiv istifadəni dayandırır.command="..."deploy skripti kimi müəyyən bir komandanı məcburi edə bilər.
Şəxsi açarı heç vaxt repozitoriyada deyil, CI sisteminizin gizli məlumatlar anbarında saxlayın. CI sistemi nə vaxtsa ələ keçirilərsə, authorized_keys faylından bir sətri silmək onun girişini kəsir.
12. Serverin host açarını yoxlayın
İlk qoşulmadakı barmaq izi (fingerprint) sorğusu sizi səhv maşına qoşulmaqdan qoruyur. Vacib serverlər üçün onu həqiqi barmaq izi ilə müqayisə edin. Serverin brauzer konsolunda işə salın:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
SSH müştərinizin göstərdiyi ilə üst-üstə düşürsə, yes cavabını verin. Barmaq izi bundan sonra ~/.ssh/known_hosts faylında saxlanılır və hər növbəti qoşulmada yoxlanılır.
Problemlərin həlli
| Mesaj | Adi səbəb |
|---|---|
Permission denied (publickey) |
Səhv istifadəçi, səhv açar və ya ~/.ssh üzərində yanlış icazələr |
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED |
Server yenidən qurulub və ya IP təkrar istifadə olunub; köhnə qeydi ssh-keygen -R 203.0.113.10 ilə silin |
| Yenə də parol soruşulur | Açar təklif olunmayıb; hansı açarların sınandığını görmək üçün ssh -v işə salın |
Müştərinin nələri sınadığının ətraflı logu üçün ssh -v user@host işə salın. Wolkra serverinə girişiniz tamamilə bağlanıbsa, server səhifəsindən brauzer konsolunu açın və ya rescue rejimində yükləyin.
Növbəti addım: yeni VPS-də ilk addımlar bələdçisini izləyin.
Tez-tez verilən suallar
Hansı SSH açar növündən istifadə etməliyəm?
Ed25519 istifadə edin. O, qısa, sürətli və təhlükəsizdir, bütün cari OpenSSH versiyaları onu dəstəkləyir. 4096 bitlik RSA-dan yalnız çox köhnə sistemlər üçün istifadə edin.
SSH açarımın parol ifadəsi (passphrase) olmalıdırmı?
Bəli. Parol ifadəsi diskdəki şəxsi açarı şifrələyir, beləliklə oğurlanmış noutbuk və ya ehtiyat nüsxə serverlərinizə giriş vermir. ssh-agent sayəsində onu hər sessiyada bir dəfə daxil edirsiniz.
Eyni açarı bir neçə server üçün istifadə edə bilərəmmi?
Bəli. Açıq açarınız çoxlu serverdə ola bilər. Bir çox insan hər server üçün deyil, hər cihaz üçün bir açar istifadə edir ki, itirilmiş cihazın açarını bir yerdə ləğv etmək mümkün olsun.
Şəxsi açarımı itirsəm nə olacaq?
Başqa yolla, məsələn brauzer konsolu ilə daxil olun və köhnə açıq açarı ~/.ssh/authorized_keys faylından silin. Sonra yeni açar əlavə edin.
Wolkra-da açarı harada əlavə edirəm?
Konsolda SSH keys bölməsində. Saxlanılmış açarları server yaradarkən seçmək olar və onlar ilk yükləmədə root hesabına yazılır.