SSH anahtarı oluşturma ve sunucuya parolasız güvenli giriş

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

:warning: 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/config dosyası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.