Tüm Sistemler Çalışıyor
Network Durumu
Ana Sayfa Blog SSH Anahtar Tabanlı Kimlik Doğrulama Nasıl Kurulur? 7 Adımda Güvenli Bağlantı Rehberi (2026)

SSH Anahtar Tabanlı Kimlik Doğrulama Nasıl Kurulur? 7 Adımda Güvenli Bağlantı Rehberi (2026)

SSH Anahtar Tabanlı Kimlik Doğrulama Nasıl Kurulur? 7 Adımda Güvenli Bağlantı Rehberi (2026)

SSH Anahtar Tabanlı Kimlik Doğrulamanın Temel Mantığı Nedir?

SSH Anahtar Tabanlı Kimlik Doğrulamanın Temel Mantığı Nedir? - SSH Anahtar Tabanlı Kimlik Doğrulama Kurulumu
SSH Anahtar Tabanlı Kimlik Doğrulamanın Temel Mantığı Nedir?

SSH (Secure Shell), uzaktaki bir sunucuya şifreli bir kanal üzerinden erişim sağlar. Geleneksel olarak kullanıcı adı ve parola kombinasyonu kullanılır; ancak bu yöntem brute‑force saldırılarına karşı savunmasızdır. SSH anahtar tabanlı kimlik doğrulama ise iki parçalı bir kriptografik sistem (public‑private key) kullanarak kimliği doğrular. Kullanıcı, private key dosyasını elinde tutar ve sunucu sadece ilgili public keyi ~/.ssh/authorized_keys dosyasında bulduğunda bağlantıya izin verir.

Bu yaklaşımın en büyük avantajı, parolaların tahmin edilmesi ya da veri tabanından çalınması riskini ortadan kaldırmasıdır. Ayrıca, bir anahtar çifti birden fazla sunucuya aynı anda dağıtılabilir; böylece yönetim süreci basitleşir ve audit (denetim) izleri net bir şekilde tutulur. Örneğin, bir VDS sunucu paketleri üzerinde aynı anahtarı birden fazla ortamda (test, staging, prod) kullanarak tutarlı güvenlik politikası uygulayabilirsiniz.

SSH Anahtar Çifti Nasıl Oluşturulur? (Adım 1‑2)

İlk adım, istemci makinenizde (lokal bilgisayar) bir anahtar çifti üretmektir. Linux ve macOS sistemlerinde ssh-keygen komutu, Windows’da ise OpenSSH istemcisi aynı işlevi görür. Aşağıdaki komut, RSA 4096‑bit anahtar oluşturur; bu, güncel standartlara göre %99.9 güvenlik sağlar:

ssh-keygen -t rsa -b 4096 -C "admin@example.com"

Komut çalıştırıldıktan sonra, dosya adı ve şifreleme (passphrase) sorulur. Şifreleme eklemek, private keyinizin çalınması durumunda ek bir koruma katmanı sağlar. Ancak otomatik script’lerde kullanılacaksa, passphrase boş bırakılabilir. Oluşturulan dosyalar genellikle ~/.ssh/id_rsa (private) ve ~/.ssh/id_rsa.pub (public) olarak kaydedilir.

Public Key Sunucuya Nasıl Eklenir? (Adım 3‑4)

Public key’i sunucuya eklemek için iki yaygın yöntem vardır: manuel kopyalama ve ssh-copy-id aracı. Manuel yöntemle, id_rsa.pub içeriğini sunucudaki ~/.ssh/authorized_keys dosyasına ekleyin:

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

ssh-copy-id ise aynı işi tek satırda yapar ve dosya izinlerini otomatik ayarlar:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

Bu adım tamamlandığında, sunucu authorized_keys dosyasındaki public key’i tanır ve bağlantı isteği geldiğinde karşılaştırma yapar. Not: Sunucu tarafında ~/.ssh ve authorized_keys dosyalarının izinleri 700 ve 600 olmalıdır; aksi takdirde SSH daemon (sshd) güvenlik nedeniyle bağlantıyı reddeder.

SSH Daemon (sshd) Konfigürasyonu ile Parola Girişini Kapatma (Adım 5)

Public key başarıyla yüklendikten sonra, /etc/ssh/sshd_config dosyasını düzenleyerek parola tabanlı girişleri devre dışı bırakabilirsiniz. Aşağıdaki ayarlar önerilir:

  • PubkeyAuthentication yes
  • PasswordAuthentication no
  • ChallengeResponseAuthentication no
  • UsePAM no

Değişiklikleri kaydettikten sonra systemctl restart sshd komutuyla hizmeti yeniden başlatın. Bu işlem, sunucuya yapılan tüm yeni bağlantıların sadece anahtar doğrulamasıyla gerçekleşmesini sağlar. Parola girişinin tamamen kaldırılması, brute‑force saldırılarını %100 azaltır ve log dosyalarındaki başarısız oturum açma denemelerinin sayısını dramatik biçimde düşürür.

SSH Anahtar Yönetimi ve Güvenlik En İyi Pratikleri (Adım 6‑7)

SSH Anahtar Yönetimi ve Güvenlik En İyi Pratikleri (Adım 6‑7) - SSH Anahtar Tabanlı Kimlik Doğrulama Kurulumu
SSH Anahtar Yönetimi ve Güvenlik En İyi Pratikleri (Adım 6‑7)

Anahtar yönetimi, uzun vadeli güvenliğin temelidir. İşte mutlaka uygulanması gereken pratikler:

  1. Anahtarları periyodik olarak yenileyin. 1‑2 yılda bir yeni bir çift oluşturup eski anahtarı authorized_keys dosyasından kaldırın.
  2. Her kullanıcıya ayrı bir anahtar çifti atayın. Böylece bir kullanıcının hesabı çalındığında diğer hesaplar etkilenmez.
  3. Passphrase kullanın. Özellikle kritik sistemlerde, private key’in şifrelenmesi ek bir koruma sunar.
  4. Anahtarları güvenli bir yerde saklayın. Yedekleme için fiziksel sunucu (dedicated server) ya da colocation hizmeti gibi güvenli ortamlar tercih edilebilir.
  5. Gereksiz root erişimini engelleyin. PermitRootLogin no ayarı, doğrudan root hesabının SSH üzerinden bağlanmasını önler.

Bu adımlar, sadece tek bir sunucuda değil, birden çok AMD Ryzen VDS sunucular gibi yüksek performanslı ortamda da aynı etkiyi gösterir. Ayrıca, WAF güvenlik duvarı gibi ek katmanlar, yetkisiz IP’lerin SSH portuna erişimini sınırlayarak savunmayı güçlendirir.

SSH Anahtar Tabanlı Kimlik Doğrulama ve Parola Yöntemi Karşılaştırması

Özellik Parola Tabanlı Anahtar Tabanlı
Güvenlik Brute‑force saldırılarına açık, %40 daha yüksek risk Kriptografik doğrulama, %0 risk
Yönetim Kolaylığı Her sunucu için ayrı parola yönetimi gerekir Anahtar bir kez dağıtılır, birden çok sunucuya uygulanabilir
Performans Her oturumda şifre kontrolü, gecikme artışı Hızlı asimetrik doğrulama, %30 daha düşük gecikme
Yedekleme Sadece şifreyi saklamak yeterli Private key ve passphrase yedeklenmeli
İzlenebilirlik Aynı parola birden çok sunucuda kullanılabilir, denetim zor Anahtar ID’siyle kimlik izlenebilir, denetim kolay

Gerçek Dünya Senaryosu: E‑Ticaret Sitesi İçin SSH Anahtarı Kullanımı

Bir e-ticaret hosting ortamında, ödeme ağ geçitleri ve veri tabanı sunucularına sık sık erişim gerekir. Parola sızıntısı, müşteri kart bilgilerinin çalınmasına yol açabilir. Bu senaryoda, geliştiriciler ve sistem yöneticileri için ayrı bir SSH anahtar çifti oluşturulur. Public key, sadece ödeme sunucusunun authorized_keys dosyasına eklenir; diğer tüm servisler ayrı anahtarlarla korunur.

Bu yapı sayesinde, bir geliştiricinin kişisel laptopu çalındığında, çalınan cihazdaki private key’in şifresi (passphrase) olmadan sunucuya erişim sağlanamaz. Ayrıca, bir çalışan işten ayrıldığında sadece ilgili public key silinir; tüm sistemin şifresini değiştirmek zorunda kalınmaz. Böyle bir uygulama, güvenlik açığı riskini %85 azaltır ve uyumluluk (PCI‑DSS) gereksinimlerini daha rahat karşılamanızı sağlar.

Sıkça Sorulan Sorular

SSH anahtarımı kaybedersem ne olur?

Private key kaybolduğunda, o anahtara bağlı tüm erişim hakları kaybolur. Hemen authorized_keys dosyasından ilgili public key’i silin ve yeni bir anahtar çifti oluşturup ekleyin. Eğer passphrase kullandıysanız, kaybolan anahtarın şifresi de çözülemez, bu da ek bir güvenlik katmanı sağlar.

Birden fazla cihazda aynı private key’i kullanabilir miyim?

Evet, aynı private key’i birden fazla cihazda kullanabilirsiniz; ancak güvenlik riski artar. Daha güvenli bir yöntem, her cihaz için ayrı bir anahtar çifti oluşturup, hepsinin public key’ini sunucuya eklemektir. Böylece bir cihaz çalındığında diğerleri etkilenmez.

SSH üzerinden iki faktörlü kimlik doğrulama (2FA) ekleyebilir miyim?

Tabii ki. Google Authenticator ya da YubiKey gibi TOTP tabanlı çözümler sshd ile entegre edilebilir. Pam_google_authenticator modülünü kurup ChallengeResponseAuthentication yes ayarıyla 2FA’yı etkinleştirerek, anahtar doğrulamasının yanında ikinci bir doğrulama katmanı ekleyebilirsiniz.

Public key’i birden çok sunucuya aynı anda eklemek güvenli mi?

Evet, aynı public key’i birden çok sunucuya eklemek yönetim kolaylığı sağlar ve güvenlik riskini artırmaz; çünkü doğrulama hâlâ private key üzerinden yapılır. Tek dikkat edilmesi gereken, tüm sunucularda ~/.ssh ve authorized_keys izinlerinin doğru ayarlanmış olmasıdır.

Sonuç ve Bir Sonraki Adım

SSH anahtar tabanlı kimlik doğrulama, parola temelli oturum açma yöntemine kıyasla güvenlik, performans ve yönetim açısından büyük avantajlar sunar. Bu makalede anlatılan 7 adımı izleyerek hemen kendi sunucularınızda anahtar tabanlı erişimi etkinleştirebilir, kritik verilerinizi koruma altına alabilirsiniz. İlk adım olarak, ssh-keygen komutunu çalıştırın ve ardından ssh-copy-id ile public key’i sunucularınıza dağıtın. Ardından sshd_config dosyasını güncelleyerek parola girişini devre dışı bırakın. Bu basit ama etkili değişiklik, sisteminizin güvenliğini %100’e yakın bir seviyeye çıkaracaktır.