SSH anahtarı oluşturma ve kullanma

Bu makalede adım adım SSH anahtarı oluşturmayı, sunucuya aktarmayı ve parola ile girişi devre dışı bırakarak sunucu güvenliğinizi katlayarak artırmayı öğreneceksiniz.

8 dk Güncellendi 16 Aug 2026

Şimdiye kadar bir Linux sunucusuna bağlanmak için parola kullandıysanız, muhtemelen bu yöntemin yalnızca yavaş ve sıkıcı olmadığını, aynı zamanda sunucunuzun en büyük güvenlik açıklarından biri olduğunu biliyorsunuzdur. SSH servisine yönelik brute-force saldırıları, internete bağlı her sunucunun günlük olarak karşılaştığı en yaygın tehditlerden biridir. Bu sorun için standart ve neredeyse zorunlu çözüm, SSH anahtarı kullanmaktır. Bu makalede sade bir dille ve pratik örneklerle nasıl bir anahtar çifti oluşturacağınızı, genel anahtarı sunucuya nasıl yerleştireceğinizi ve son olarak parola ile girişi tamamen nasıl devre dışı bırakacağınızı öğreneceksiniz.

SSH Anahtarı Nedir ve Neden Kullanmalıyız?

SSH anahtarı, asimetrik şifrelemeye dayalı bir kimlik doğrulama yöntemidir. Ağ üzerinden bir parola göndermek yerine (ki bu her zaman dinlenebilir veya tahmin edilebilir), matematiksel bir anahtar çifti kullanırsınız: yalnızca sisteminizde (istemci) tutulan bir özel anahtar ve sunucuya yerleştirilen bir genel anahtar. Sunucuya girmek istediğinizde, sunucu yalnızca özel anahtarınızla çözülebilecek şifreli bir meydan okuma gönderir. Bu süreç yalnızca daha güvenli olmakla kalmaz, aynı zamanda parolasız giriş imkânı da sağlar.

Bu yöntemin ana avantajı, özel anahtarın cihazınızdan asla çıkmaması ve ağ üzerinde hiçbir parolanın taşınmamasıdır. Birisi ağ trafiğini dinlese bile yararlı bir bilgi elde edemez. Ayrıca, özel anahtarınız için bir passphrase belirleyebilirsiniz; böylece birisi anahtar dosyanıza erişse bile onu kullanamaz.

Ön Koşullar ve Hazırlık

Bu eğitimi takip etmek için aşağıdakilere ihtiyacınız var:

  • SSH erişimi olan bir Linux sunucusu (Ubuntu, Debian, CentOS veya başka bir dağıtım)
  • Sunucuya bağlanmak istediğiniz bir istemci sistem (dizüstü bilgisayar veya kişisel bilgisayar)
  • Her iki sistemde de terminal erişimi

Linux ve macOS sistemlerinde ssh-keygen aracı varsayılan olarak kuruludur. Windows kullanıyorsanız, Windows 10 ve 11'in yeni sürümleri OpenSSH içerir ve PowerShell veya CMD kullanabilirsiniz. Kurulu olduğundan emin olmak için şu komutu çalıştırın:

ssh -V

Çıktı OpenSSH sürümünü içeriyorsa her şey hazırdır.

SSH Anahtar Çifti Oluşturma

İlk adım, istemci sistemde anahtar çiftini üretmektir. Terminalde şu komutu çalıştırın:

ssh-keygen -t ed25519 -C "your_email@example.com"

Bu komutta:

  • -t ed25519 şifreleme algoritmasını belirtir. ed25519, RSA'dan daha hızlı ve daha güvenlidir ve daha kısa anahtarlar üretir. Sunucunuz bu algoritmayı desteklemiyorsa (çok eski sunucular), 4096 bit uzunluğunda rsa kullanabilirsiniz: ssh-keygen -t rsa -b 4096
  • -C anahtara bir yorum (genellikle e-postanız) ekler; böylece hangi anahtarın hangi sisteme ait olduğunu daha sonra anlayabilirsiniz.

Komutu çalıştırdıktan sonra anahtar dosyasını nereye kaydedeceğiniz sorulur. Varsayılan yol ~/.ssh/id_ed25519 genellikle en iyi seçenektir. Sadece Enter'a basın. Ardından bir passphrase belirlemeniz istenir. Bu, özel anahtarın kendisi için ek bir paroladır. Daha fazla güvenlik istiyorsanız uzun bir ifade girin. Parolasız giriş yapmayı tercih ederseniz boş bırakabilirsiniz, ancak bu güvenliği azaltır.

Bu adımdan sonra ~/.ssh/ dizininde iki dosya oluşturulur:

  • id_ed25519 — özel anahtar (bu dosyayı asla kimseyle paylaşmayın)
  • id_ed25519.pub — genel anahtar (bu dosyayı sunucuya yerleştireceğiz)

Genel anahtarın içeriğini görüntülemek için şu komutu kullanın:

cat ~/.ssh/id_ed25519.pub

Çıktı şuna benzer olacaktır:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8J3hY8xQy7vZ2mX9sLpQnR4vKcWxTz6HjYbGfQ your_email@example.com

Bu dizeyi kopyalayın; bir sonraki adımda ihtiyacınız olacak.

Yaygın Hata: Özel Anahtar Yerine Genel Anahtar Kullanmak

En yaygın hatalardan biri, id_ed25519.pub (genel anahtar) yerine id_ed25519 (özel anahtar) dosyasının içeriğini kopyalamaktır. Bunu asla yapmayın. Özel anahtar her zaman sisteminizde kalmalıdır ve başka birinin eline geçerse, o kişi parola olmadan sunucunuza girebilir.

Genel Anahtarı Sunucuya Aktarma

Artık genel anahtarınız olduğuna göre, onu sunucudaki ~/.ssh/authorized_keys dosyasına eklemeniz gerekir. En basit ve en güvenilir yöntem ssh-copy-id komutunu kullanmaktır. Bu komut genel anahtarı otomatik olarak sunucuya aktarır ve doğru konuma yerleştirir:

ssh-copy-id username@server_ip

username yerine sunucudaki kullanıcı adınızı ve server_ip yerine sunucunun IP adresini veya alan adını girin. İlk seferde kullanıcı parolanız istenir. Parolayı girdikten sonra genel anahtar authorized_keys dosyasına eklenir.

Herhangi bir nedenle ssh-copy-id mevcut değilse (örneğin Windows'ta), bunu manuel olarak yapabilirsiniz. Önce parola ile sunucuya giriş yapın:

ssh username@server_ip

Ardından sunucuda .ssh dizinini oluşturun ve authorized_keys dosyasını oluşturun:

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

Şimdi daha önce kopyaladığınız genel anahtar içeriğini dosyanın sonuna ekleyin. nano düzenleyicisini kullanabilirsiniz:

nano ~/.ssh/authorized_keys

İçeriği yapıştırın, ardından Ctrl+X, Y ve Enter ile kaydedip çıkın. Son olarak doğru izinleri ayarlayın:

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

Bu izinler çok önemlidir. Dosyalar çok açık olursa sunucu anahtarı kabul etmeyi reddedebilir.

SSH Anahtarı ile Bağlantıyı Test Etme

Parolayı devre dışı bırakmadan önce mutlaka anahtar ile bağlantıyı test edin. İstemci sistemden şu komutu çalıştırın:

ssh username@server_ip

Her şey doğruysa parola sorulmadan sunucuya giriş yaparsınız (tabii özel anahtar için passphrase belirlediyseniz, onu girmeniz istenir). Permission denied (publickey) gibi bir hata alırsanız, genel anahtar doğru eklenmemiş veya izinler hatalı olabilir. İzinleri tekrar kontrol edin ve genel anahtar içeriğinin tam olarak tek satırda ve fazladan boşluk olmadan kopyalandığından emin olun.

Parola ile Girişi Devre Dışı Bırakma

SSH anahtarı ile bağlantının doğru çalıştığından emin olduktan sonra, parola ile girişi devre dışı bırakmanın zamanı geldi. Bu, brute-force saldırılarını önler ve sunucunuzun güvenliğini daha üst seviyeye taşır.

Önce SSH yapılandırma dosyasını düzenleyin:

sudo nano /etc/ssh/sshd_config

Bu dosyada aşağıdaki satırları arayın ve değerleri değiştirin:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Bu satırlar yoksa, dosyanın sonuna ekleyin. PasswordAuthentication no satırının en önemli satır olduğuna dikkat edin. Değişiklikleri uyguladıktan sonra dosyayı kaydedin ve SSH servisini yeniden başlatın:

sudo systemctl restart sshd

Debian tabanlı dağıtımlarda (Ubuntu gibi) servis adı sshd yerine ssh olabilir. Bu durumda sudo systemctl restart ssh komutunu kullanın.

Yaygın Hata: Kendinizi Sunucudan Kilitlemek

Bu aşamadaki en büyük risk, anahtarınız düzgün çalışmazsa parolayı devre dışı bıraktıktan sonra sunucuya girmek için hiçbir yolunuzun kalmamasıdır. Bu felaketi önlemek için iki şey yapın:

  1. Parolayı devre dışı bırakmadan önce sunucuya ikinci bir SSH oturumu açın ve onu açık tutun. Bir sorun olursa, yapılandırmayı düzeltmek için bu oturumu kullanın.
  2. Yapılandırmayı değiştirdikten sonra ve mevcut oturumu kapatmadan önce, yeni bir terminalde anahtar ile bağlantıyı test edin. Başarılıysa eski oturumu kapatabilirsiniz.

Ayrıca değişiklikleri uygulamadan önce yapılandırma dosyasının bir yedeğini almanız önerilir:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Daha sonra bir sorun olursa, şu komutla yapılandırmayı geri alabilirsiniz:

sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config

Birden Fazla Anahtar Yönetimi ve ssh-agent Kullanımı

Birden fazla sunucu kullanıyorsanız, her biri için ayrı bir anahtar oluşturabilirsiniz. Daha iyi yönetim için istemci sistemde ~/.ssh/config dosyasını oluşturabilirsiniz. Bu dosya, her sunucu için bir takma ad tanımlamanıza ve belirli ayarlar uygulamanıza olanak tanır. Örnek:

Host myserver
    HostName 192.168.1.100
    User root
    IdentityFile ~/.ssh/id_ed25519_server1
    Port 22

Artık uzun komutu yazmak yerine sadece şunu yazmanız yeterlidir:

ssh myserver

Anahtarlarınız için passphrase belirlediyseniz, her bağlantıda girmek can sıkıcı olabilir. Bu durumda, anahtarları bellekte tutan ve passphrase'i bir kez girdikten sonra sistem açık olduğu sürece tekrar sormayan ssh-agent kullanabilirsiniz:

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

Bundan sonra aynı terminal oturumunda sunucuya bağlantı passphrase sorulmadan gerçekleşir.

Daha Fazla Güvenlik İçin Ek İpuçları

Parolayı devre dışı bırakmak SSH güvenliğini artırmanın yalnızca bir adımıdır. Sunucunuzu daha fazla korumak için aşağıdakileri de göz önünde bulundurun:

  • SSH portunu değiştirme: Varsayılan 22 portunu alışılmadık bir porta değiştirmek, otomatik saldırıların sayısını önemli ölçüde azaltır. Bunu sshd_config dosyasında Port 2222 satırıyla yapın.
  • İzin verilen kullanıcıları sınırlama: AllowUsers username satırıyla yalnızca belirli kullanıcıların giriş yapmasına izin verin.
  • fail2ban kullanımı: Bu araç, birkaç başarısız deneme yapan IP adreslerini otomatik olarak engeller.
  • Kök (root) girişini devre dışı bırakma: PermitRootLogin no satırıyla doğrudan root kullanıcısı ile girişi devre dışı bırakın ve her zaman normal bir kullanıcıyla giriş yapıp komutları sudo ile çalıştırın.

Projeleriniz için güvenli ve ölçeklenebilir bir altyapı arıyorsanız, SSH desteği ve gelişmiş yönetim özellikleriyle ServerNet bulut sunucuları uygun bir seçenek olabilir.

Özet

SSH anahtarı kullanmak, her sunucu yöneticisi için temel bir beceridir. Bu makaledeki adımları izleyerek nasıl bir anahtar çifti oluşturacağınızı, genel anahtarı sunucuya yerleştireceğinizi ve son olarak parola ile girişi nasıl devre dışı bırakacağınızı öğrendiniz. Bu, sunucunuzun güvenliğini önemli ölçüde artırmanın yanı sıra sunucuyla günlük çalışma deneyiminizi de çok daha akıcı hale getirir. Güvenlik değişiklikleri uygulamadan önce her zaman bir yedek almayı ve mevcut oturumu kapatmadan önce yeni bağlantıyı test etmeyi unutmayın. Bu ipuçlarına uyarak anahtar tabanlı kimlik doğrulamanın avantajlarından gönül rahatlığıyla yararlanabilirsiniz.

Bu sayfa yardımcı oldu mu?