Skip to main content

🔐 CentOS’ta SSH Anahtarlarıyla Güvenli Giriş

Bu rehberde, CentOS işletim sistemi kurulu bir sunucuda parolasız, güvenli ve hızlı bağlantı kurmayı öğreneceksiniz.
SSH anahtar çifti oluşturacak, genel anahtarı sunucuya aktaracak ve parola girişini devre dışı bırakacaksınız.
Bu yöntem, brute-force saldırılarına karşı güçlü bir savunma sağlar ve yönetimi kolaylaştırır.


💡 Bu Rehberde Ne Öğreneceksiniz?

  • Yerel bilgisayarda RSA anahtar çifti oluşturmayı
  • Genel anahtarı CentOS sunucusuna kopyalamayı
  • SSH anahtarıyla parolasız oturum açmayı
  • Parola tabanlı girişi tamamen devre dışı bırakmayı

1️⃣ RSA Anahtar Çifti Oluşturma

SSH anahtarları, kimlik doğrulamanın en güvenli yöntemlerinden biridir.
İlk adım olarak kendi cihazınızda RSA anahtar çifti oluşturacağız.

A. ssh-keygen Komutunu Çalıştır

ssh-keygen

➡️ Bu komut 2048 bitlik RSA anahtar çifti oluşturur. İsterseniz daha güçlü bir anahtar için:


ssh-keygen -b 4096

B. Anahtar Konumunu Seç

Komut sizden bir dosya konumu isteyecek:


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

ENTER’a basarak varsayılan dizinde kaydedebilirsiniz.

C. Güvenli Parola (Passphrase) Ekle


Enter passphrase (empty for no passphrase):

🔒 Parola girmek isteğe bağlıdır ama şiddetle önerilir. Gizli anahtarınız çalınsa bile, parola olmadan kullanılamaz.

D. Anahtar Dosyaları

Oluşan iki dosya:

~/.ssh/id_rsa → Gizli anahtar (kesinlikle paylaşma)

~/.ssh/id_rsa.pub → Genel anahtar (sunucuya gönderilecek)

💬 Önemli Not: Aynı isimde anahtar varsa üzerine yazmak eski erişimleri iptal eder. Dikkat et!


2️⃣ Genel Anahtarı Sunucuya Aktarma

Genel anahtarın (id_rsa.pub) sunucudaki ~/.ssh/authorized_keys dosyasına eklenmesi gerekir. Bunu üç farklı yöntemle yapabilirsin 👇

🅐 ssh-copy-id ile Otomatik Kopyalama (Önerilen)


ssh-copy-id kullanici@sunucu_ip

Bu komut genel anahtarını sunucuya kopyalar. İlk bağlantıda “yes” yazıp devam et, ardından parola gir.


Number of key(s) added: 1
Now try logging into the machine with: ssh 'kullanici@sunucu_ip'

Artık parolasız giriş yapabilirsin:


ssh kullanici@sunucu_ip

🅑 SSH + Pipe Kullanımı

ssh-copy-id yoksa alternatif olarak:


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

Bu komut, .ssh dizinini oluşturur ve anahtarını authorized_keys dosyasına ekler.

🅒 Manuel Kopyalama (Konsoldan)

Sunucuya manuel erişimin varsa:

Yerelde anahtarı görüntüle:


cat ~/.ssh/id_rsa.pub

Sunucuda .ssh dizinini oluştur:


mkdir -p ~/.ssh

Anahtarı authorized_keys dosyasına ekle:


echo "GENEL_ANAHTAR_ICERIGI" >> ~/.ssh/authorized_keys

İzinleri ayarla:


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

Eğer root hesabından başka kullanıcı için yaptıysan:


chown -R kullanici:kullanici ~/.ssh

✅ Not: İzinler çok açık olursa SSH anahtarını reddeder. “Permission denied (publickey)” hatası genelde buradan kaynaklanır.


3️⃣ SSH Anahtarlarıyla Giriş Yapma

Artık parolasız giriş zamanı 👇


ssh kullanici@sunucu_ip

İlk bağlantıda kimlik doğrulama uyarısı gelebilir:


The authenticity of host '203.0.113.1' can't be established.
Are you sure you want to continue connecting (yes/no)? yes

“yes” yazıp ENTER’a bas. Eğer anahtar oluştururken parola belirlediysen, şimdi girmen istenir. Başarılı giriş sonrası direkt shell oturumu açılır.


4️⃣ Parola ile Girişi Kapatma (SSH Hardening)

⚠️ Kritik Uyarı: Bu adımı uygulamadan önce SSH anahtarıyla giriş yaptığın hesabın sudo yetkisine sahip olduğundan emin ol. Aksi halde sunucuya tekrar erişemezsin.

Sunucuya bağlan:


ssh kullanici@sunucu_ip

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


sudo nano /etc/ssh/sshd_config

Şu satırı bul ve düzenle:


PasswordAuthentication no

Satırın başındaki # işaretini kaldır.

Dosyayı kaydet ve SSH servisini yeniden başlat:


sudo systemctl restart sshd

Yeni bir terminal aç ve test et:


ssh kullanici@sunucu_ip

Her şey sorunsuzsa artık sistem sadece anahtar tabanlı girişe izin verir.


❓ Sıkça Sorulan Sorular (SSS)

1. SSH anahtarımı kaybedersem ne olur?

Yeni bir anahtar üretip sunucudaki authorized_keys dosyasına yeniden eklemelisin.

2. SSH anahtarları neden daha güvenli?

2048 veya 4096 bitlik kriptografik dizeler brute-force ile kırılamaz, parolalara göre binlerce kat daha güçlüdür.

3. authorized_keys izinleri neden önemli?

Dosya herkes tarafından yazılabilir durumdaysa SSH servisi bunu reddeder.

4. sshd nedir?

SSH Daemon’dur; arka planda bağlantıları yöneten servistir. CentOS’ta systemctl restart sshd komutuyla kontrol edilir.

5. Anahtarı başka sunucularda da kullanabilir miyim?

Evet, sadece id_rsa.pub içeriğini diğer sunucuların authorized_keys dosyasına eklemen yeterli.


🏁 Sonuç

Artık CentOS sunucunda parolasız, güvenli SSH bağlantısı aktif. Bu yöntem hem hız kazandırır hem de güvenlik seviyeni üst düzeye çıkarır.

🚀 Tüm bu adımları Rabisu Bulut üzerindeki sunucularında da uygulayabilir, altyapını brute-force saldırılarına karşı sağlamlaştırabilirsin.