Sunucuya her girişte parola yazmak hem yorucu hem de kaba kuvvet saldırısına açıktır. SSH anahtarı ikisini de çözer: daha güvenli ve parolasız.
Mantık
İki parçalı bir anahtar çifti üretirsin:
- Özel anahtar (private): Sadece sende kalır, kimseyle paylaşılmaz.
- Genel anahtar (public): Sunucuya konur. Herkese verilebilir, tek başına işe yaramaz.
Giriş sırasında sunucu, karşındakinin gerçekten özel anahtara sahip olduğunu matematiksel olarak doğrular.
1. Anahtar üret (kendi bilgisayarında)
ssh-keygen -t ed25519 -C "laptop-2026"
- Kayıt yeri sorulunca Enter (varsayılan:
~/.ssh/id_ed25519). - Passphrase sorulunca bir parola gir (anahtarın çalınmasına karşı ek koruma). Boş da bırakabilirsin ama girmen önerilir.
2. Genel anahtarı sunucuya kopyala
ssh-copy-id kullanici@sunucu_ip
ssh-copy-id yoksa (Windows), genel anahtarın içeriğini sunucudaki ~/.ssh/authorized_keys dosyasına elle ekle.
3. Test et, sonra parolayı kapat
Yeni bir terminalde:
ssh kullanici@sunucu_ip
Parolasız girebildiysen, sunucuda parola girişini kapat (/etc/ssh/sshd_config):
PasswordAuthentication no
PermitRootLogin no
sudo systemctl restart ssh
Anahtarla girebildiğini mutlaka test etmeden parolayı kapatma, yoksa kendini kilitlersin.
İpuçları
- Özel anahtarını yedekle (güvenli bir yerde); kaybedersen sunucuya giremezsin.
- Birden çok sunucu için
~/.ssh/configdosyasıyla kısayol tanımla:
Host benim-sunucu
HostName 5.231.59.49
User mikro
IdentityFile ~/.ssh/id_ed25519
Artık sadece ssh benim-sunucu yeter.
Takıldığınız adımı yazın, birlikte çözelim.