SSH Key Tabanlı Giriş (Key Authentication) Nasıl Yapılır?

SSH Key Tabanlı Giriş (Key Authentication) Nasıl Yapılır?
Yazı Özetini Göster

SSH Key Tabanlı Giriş (Key Authentication) Nasıl Yapılır?

SSH Key Authentication, Linux sunucularına parola kullanmadan, özel (private) ve genel (public) anahtar çiftine dayalı olarak güvenli bağlantı kurma yöntemidir. Bu yöntem, hem güvenlik hem de otomasyon açısından parola tabanlı girişlerden çok daha güvenlidir. Bu rehberde, SSH anahtarlarının nasıl oluşturulacağını, sunucuya nasıl ekleneceğini ve güvenli yapılandırmanın nasıl yapılacağını adım adım anlatıyoruz.

1. SSH Key Authentication Nedir?

SSH (Secure Shell) protokolü, ağ üzerinden güvenli uzaktan erişim sağlar. Anahtar tabanlı kimlik doğrulamada, kullanıcı bir özel anahtar (private key) ve genel anahtar (public key) çifti üretir. Sunucu, yalnızca kendisine yüklenmiş olan public key ile eşleşen private key’e sahip istemcilerin girişine izin verir.

2. SSH Anahtar Çifti Oluşturma

Linux veya macOS üzerinde yeni bir anahtar çifti oluşturmak için:

ssh-keygen -t rsa -b 4096 -C "kullanici@sunucu"
  • -t rsa: RSA algoritmasını belirtir (alternatif: ed25519).
  • -b 4096: 4096-bit uzunlukta güçlü bir anahtar üretir.
  • -C: Anahtar açıklaması (genellikle e-posta veya etiket).

Komut sonrası sistem sizden dosya yolu ve isteğe bağlı bir şifre (passphrase) isteyecektir:

Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

3. Public Key’i Sunucuya Aktarma

Anahtarlar üretildikten sonra public key’inizi sunucuya gönderin:

ssh-copy-id kullanici@sunucu_ip

Bu komut public key’i otomatik olarak ~/.ssh/authorized_keys dosyasına ekler. Eğer bu komut mevcut değilse, manuel olarak yükleyebilirsiniz:

cat ~/.ssh/id_rsa.pub | ssh kullanici@sunucu_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

4. SSH Key Dosya İzinlerini Ayarlama

SSH güvenliği için dosya izinleri çok önemlidir:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa

Yanlış izinler SSH bağlantısını engelleyebilir. Özellikle ~/.ssh/ klasörü diğer kullanıcılar tarafından okunabilir olmamalıdır.

5. SSH Bağlantısını Test Etme

Bağlantıyı test etmek için:

ssh kullanici@sunucu_ip

Parola sormadan doğrudan giriş yapılabiliyorsa, yapılandırma başarıyla tamamlanmıştır.

6. Parola Girişi Devre Dışı Bırakma (Opsiyonel)

Güvenliği artırmak için parola tabanlı girişleri tamamen devre dışı bırakabilirsiniz:

sudo nano /etc/ssh/sshd_config

Aşağıdaki satırları bulun ve düzenleyin:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes

Değişiklik sonrası SSH servisini yeniden başlatın:

sudo systemctl restart sshd

7. Anahtar Yönetimi (Birden Fazla Kullanıcı)

Birden fazla kullanıcının aynı sunucuya erişmesi gerekiyorsa, her kullanıcı kendi public key’ini ~/.ssh/authorized_keys dosyasına eklemelidir. Her satırda bir public key bulunabilir.

8. Farklı Anahtar Dosyası Kullanma

Eğer özel anahtar farklı bir isimde veya konumdaysa, bağlantıda bunu belirtebilirsiniz:

ssh -i ~/.ssh/hostligo_rsa kullanici@sunucu_ip

9. SSH Agent Kullanımı

SSH agent, özel anahtarınızı bellekte tutarak her bağlantı için şifre girmenizi önler:

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

10. Güvenlik En İyi Uygulamaları

  • RSA yerine ED25519 anahtarlarını tercih edin (daha güvenli ve hızlıdır).
  • Her sunucu için farklı anahtar çifti oluşturun.
  • İstemci cihaz çalınırsa hemen authorized_keys dosyasından public key’i silin.
  • Fail2ban veya UFW ile SSH portunu koruyun.
  • Varsayılan 22 numaralı portu değiştirerek brute-force riskini azaltın.

Sonuç

SSH Key Authentication, parola tabanlı girişlere göre çok daha güvenli, hızlı ve yönetilebilir bir kimlik doğrulama yöntemidir. Özellikle otomasyon sistemleri, CI/CD süreçleri ve uzak yönetim operasyonları için kritik öneme sahiptir. Kurumsal ölçekli altyapılarda HostLigo Linux VDS çözümleriyle bu güvenlik yöntemi kolayca uygulanabilir.

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer Yazılar