Skip to main content

🔑 Linux’ta SSH Anahtarı Oluşturma ve Güvenli Bağlantı Rehberi

SSH (Secure Shell), uzak sunucularla güvenli şekilde iletişim kurmanın en popüler yoludur.
Bu rehberde, ssh-keygen aracıyla güvenli anahtar çifti oluşturmayı, bu anahtarı uzak sunucuya eklemeyi ve parolalı girişleri kapatarak güvenliği artırmayı öğreneceksiniz.


💡 Bu Rehberde Ne Öğreneceksiniz

  • SSH anahtarlarının nasıl çalıştığını,
  • ssh-keygen ile özel (private) ve genel (public) anahtar oluşturmayı,
  • Genel anahtarı sunucuya eklemeyi (ssh-copy-id veya manuel olarak),
  • Parolasız giriş sağlamayı,
  • Son olarak parola kimlik doğrulamasını kapatarak güvenliği maksimuma çıkarmayı.

🧠 SSH Anahtarları Nasıl Çalışır?

SSH anahtar kimlik doğrulaması, iki anahtar üzerinden çalışır:

Anahtar TürüAçıklama
Gizli Anahtar (Private Key)Yalnızca sizde bulunur, gizli tutulmalıdır. Dilerseniz parola (passphrase) ile şifreleyebilirsiniz.
Genel Anahtar (Public Key)Uzak sunucuya yüklenir ve paylaşılabilir. Yalnızca gizli anahtar ile eşleşirse oturum açılır.

Bağlantı kurulduğunda sunucu, istemcinin gerçekten gizli anahtara sahip olup olmadığını test eder.
İstemci doğrulamayı geçerse parola girmeden güvenli oturum açılır.


⚙️ 1. Adım — SSH Anahtar Çifti Oluşturma

Linux’ta SSH anahtarı oluşturmak için terminalde şu komutu çalıştırın:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Bu komut, 4096 bit uzunluğunda RSA tipi bir anahtar çifti oluşturur. Anahtarlar genellikle ~/.ssh/ dizininde id_rsa (gizli) ve id_rsa.pub (genel) olarak saklanır.

🔧 Adım Adım

Konum Sorusu:


Enter file in which to save the key (/home/kullanici/.ssh/id_rsa):

ENTER tuşuna basarak varsayılan konumu onaylayın.

Parola (Passphrase) Belirleme:

Güvenlik için önerilir. Girmek istemiyorsanız ENTER’a basın.

Oluşturulduktan Sonra:


Your identification has been saved in /home/kullanici/.ssh/id_rsa
Your public key has been saved in /home/kullanici/.ssh/id_rsa.pub

Artık SSH bağlantılarında kullanacağınız anahtar çiftiniz hazır.


🌍 2. Adım — Genel Anahtarı Sunucuya Kopyalama

SSH anahtarının çalışması için, genel anahtarın (id_rsa.pub) uzak sunucuya eklenmesi gerekir.

🧩 Yöntem A: ssh-copy-id ile (Otomatik)


ssh-copy-id [email protected]

Bu komut, id_rsa.pub dosyasını uzak sunucudaki ~/.ssh/authorized_keys dizinine otomatik olarak ekler. İlk bağlantıda “Are you sure?” sorusuna yes diyerek devam edin.

Parola istendiğinde mevcut kullanıcı parolanızı girin. Artık bağlantınız parolasız gerçekleşecektir.

🧩 Yöntem B: Manuel Kopyalama (Alternatif)

Eğer ssh-copy-id yüklü değilse, aşağıdaki komutu kullanabilirsiniz:


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

Bu yöntem, ~/.ssh dizinini oluşturur ve anahtar içeriğini authorized_keys dosyasına ekler.


🧪 3. Adım — Anahtar ile Kimlik Doğrulamayı Test Etme

Şimdi SSH bağlantınızı test edin:

Eğer passphrase belirlemediyseniz doğrudan giriş yapılır. Belirlediyseniz yalnızca o parola sorulur, uzak sunucu parolası gerekmez.


🔒 4. Adım — Parola Tabanlı Girişi Devre Dışı Bırakma

Artık SSH anahtarınızla güvenli giriş sağladığınız için, parola ile kimlik doğrulamayı kapatabilirsiniz.

SSH yapılandırma dosyasını açın:


sudo nano /etc/ssh/sshd_config

PasswordAuthentication satırını bulun ve şu şekilde ayarlayın:


PasswordAuthentication no

Dosyayı kaydedin ve SSH servisini yeniden başlatın:


sudo systemctl restart ssh

Artık sadece SSH anahtarı ile oturum açılabilir. Parola ile giriş denemeleri engellenir.


🧱 5. Adım — Donanım Tabanlı Güvenlik (HSM) [Opsiyonel]

Daha ileri güvenlik için Donanım Güvenlik Modülü (HSM) kullanabilirsiniz. Bu yöntem, anahtarlarınızı fiziksel donanımda saklar.

🔧 Örnek Kurulum


ssh-keygen -D /usr/lib/opensc-pkcs11.so -s user-hsm-key
ssh-keygen -D /usr/lib/opensc-pkcs11.so -e > ~/.ssh/id_hsm.pub

Bu anahtarı yine authorized_keys dosyasına ekleyebilirsiniz.


🧩 SSH Komut Özeti

GörevKomutAçıklama
SSH anahtarı oluşturmassh-keygen -t rsa -b 4096Yeni RSA anahtar çifti oluşturur.
Açık anahtarı sunucuya kopyalamassh-copy-id user@hostAnahtarı otomatik olarak aktarır.
Anahtarı manuel eklemecat ~/.ssh/id_rsa.pub >> authorized_keysManuel yöntem.
SSH servisini yeniden başlatmasudo systemctl restart sshYapılandırmayı uygular.
Parola girişini kapatmaPasswordAuthentication noYalnızca anahtar tabanlı girişe izin verir.

❓ Sıkça Sorulan Sorular (SSS)

1. Parola mı, SSH anahtarı mı daha güvenlidir?

SSH anahtarları çok daha güvenlidir. 4096 bit RSA veya Ed25519 gibi uzun anahtarlar brute-force saldırılarına karşı dayanıklıdır.

2. Passphrase kullanmak zorunda mıyım?

Hayır, ama önerilir. Anahtarınız çalınsa bile passphrase olmadan kullanılamaz.

3. Gizli anahtarımı kaybedersem ne olur?

Uzak sunuculara erişemezsiniz. Yeni anahtar oluşturup authorized_keys dosyasını güncellemeniz gerekir.

4. Anahtar türleri arasındaki fark nedir?

Tür Özellik RSA En yaygın, yüksek uyumluluk. Ed25519 Daha modern ve hızlı, kısa anahtar uzunluğu.

5. SSH bağlantımda hâlâ parola istiyor, neden?

~/.ssh klasörünüzün izinlerini kontrol edin:

bash

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


🌟 Sonuç

Artık Linux sisteminizde güvenli SSH anahtar kimlik doğrulamasını başarıyla kurdunuz. Bu yöntem, parola saldırılarını engeller ve bağlantılarınızı tamamen şifreli hale getirir.

🔐 Daha fazla güvenlik için: Rabisu Bulut platformunda kendi sunucularınızda hemen deneyebilirsiniz!