Wolkra

Bələdçilər

SSH açarlarını necə yaratmalı və istifadə etməli

Linux, macOS və Windows-da SSH açarlarını necə yaratmalı, VPS-ə əlavə etməli, ssh-agent və konfiqurasiya faylından istifadə etməli və açarları təhlükəsiz dəyişməli. Aydın addımlar, real komandalar.

Yenilənib: 4 dəq oxu

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:

bash
ssh-keygen -t ed25519 -C "laptop-2026"
  • -t ed25519 mü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:

text
~/.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:

powershell
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

bash
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ə:

bash
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:

bash
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:

bash
ssh -i ~/.ssh/id_ed25519 [email protected]

5. Parol ifadəsini bir dəfə daxil etmək üçün ssh-agent istifadə edin

macOS

bash
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Sonra ~/.ssh/config faylına əlavə edin:

text
Host *
  AddKeysToAgent yes
  UseKeychain yes

Linux

Əksər iş masası mühitləri agenti avtomatik işə salır. Əks halda:

bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Windows

powershell
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:

text
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:

bash
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:

bash
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-2026 tapmaq user@host-dan asandır.
  • authorized_keys faylı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:

bash
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:

bash
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:

text
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-pty və 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:

bash
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.

Frankfurtda server işə salın

Hesab yaradın, balansı artırın və ayda €3.49-dan server işlədin, yalnız istifadə etdiyiniz saatlar üçün ödəyin. Bütün planlarda ölçülməyən trafik.