SSH Anahtarı (SSH Key) Nasıl Oluşturulur ve Sunucuya Nasıl Eklenir?

SSH Anahtarı (SSH Key) Nasıl Oluşturulur ve Sunucuya Nasıl Eklenir?

İnternet üzerindeki sunucularımızı yönetirken güvenlik her zaman ilk sırada gelir. Geleneksel kullanıcı adı ve şifre ikilisi, kaba kuvvet (brute-force) saldırılarına karşı savunmasız kalabilir. İşte tam bu noktada, sunucu yönetimini hem daha güvenli hem de daha pratik hale getiren SSH anahtarı (SSH Key) devreye girer. SSH anahtarları, şifre kullanmadan, kriptografik doğrulamayla sunucularınıza güvenli bir şekilde bağlanmanızı sağlar. Bu rehberde, adım adım SSH anahtarı nasıl oluşturulur ve uzak sunucuya nasıl eklenir sorularını yanıtlayacağız.

SSH Anahtarı Nedir ve Nasıl Çalışır?

SSH (Secure Shell), ağ üzerindeki bilgisayarların birbirleriyle güvenli bir şekilde iletişim kurmasını sağlayan bir protokoldür. SSH anahtarı ise bu protokolün kimlik doğrulama aşamasında kullandığı iki parçalı bir anahtar çiftidir:

  • Açık Anahtar (Public Key): Sunucuya yüklenen ve herkes tarafından görülebilmesinde sakınca olmayan anahtardır. Bir kilide benzetilebilir.
  • Gizli Anahtar (Private Key): Sadece sizin bilgisayarınızda kalması gereken, asla başkalarıyla paylaşmamanız gereken anahtardır. Bu da kilidi açan anahtardır.
  • Asimetrik şifreleme mantığına dayanan bu sistemde, matematiksel olarak birbirine bağlı iki farklı anahtar üretilir. Bu anahtarlardan biriyle şifrelenen bir veri, yalnızca diğeriyle çözülebilir. Şifre tabanlı girişlerde, şifreniz ağ üzerinden (şifrelenmiş olsa bile) sunucuya gönderilir ve orada doğrulanır. Ancak SSH anahtarı yönteminde şifreniz veya gizli anahtarınız asla ağ üzerinde taşınmaz. Sunucu, sadece sizin gizli anahtara sahip olup olmadığınızı matematiksel bir bulmaca ile test eder. Bu durum, ortadaki adam (man-in-the-middle) saldırılarını da büyük ölçüde engeller ve milisaniyeler içinde gerçekleşir.

    SSH Anahtarı Nasıl Oluşturulur?

    Modern işletim sistemlerinde (Linux, macOS ve Windows 10/11) yerleşik bir SSH istemcisi bulunur. Bu sayede ek bir yazılıma ihtiyaç duymadan terminal veya komut satırı üzerinden kolayca anahtar üretebilirsiniz.

    Güvenlik açısından günümüzde en çok önerilen algoritma Ed25519'dur. Eğer eski sistemlerle uyumluluk gerekiyorsa RSA (4096-bit) de tercih edilebilir. Terminalinizi (macOS/Linux) veya PowerShell/Komut İstemi'ni (Windows) açın ve şu komutu yazın:

    ssh-keygen -t ed25519 -C "eposta@adresiniz.com"
    

    Bu komutu çalıştırdıktan sonra sistem size bazı sorular soracaktır:

    • Dosya konumu: Anahtarın nereye kaydedileceğini sorar. Varsayılan konumu (~/.ssh/id_ed25519) onaylamak için Enter tuşuna basın.
    • Parola (Passphrase): Gizli anahtarınızı ek bir şifreyle korumak isteyip istemediğinizi sorar. Bilgisayarınız çalınsa bile anahtarınızın kullanılmasını engellemek için güçlü bir parola belirlemeniz önerilir. Boş bırakıp Enter ile geçebilirsiniz ancak güvenlik için parola koymak en iyi uygulamadır.
    • İşlem tamamlandığında ekranda rastgele bir görsel (randomart) belirecektir. Artık ~/.ssh/ dizininizde iki adet dosya bulunur: id_ed25519 (Gizli anahtarınız) ve id_ed25519.pub (Açık anahtarınız).

      SSH Anahtarını Sunucuya Ekleme Yöntemleri

      Oluşturduğunuz açık anahtarı (.pub uzantılı olanı) sunucunuza aktarmanız gerekir. Bunun için en yaygın iki yöntemi inceleyelim.

      1. ssh-copy-id Komutunu Kullanmak (En Kolay Yol)

      Linux veya macOS kullanıyorsanız, açık anahtarınızı sunucuya otomatik olarak kopyalayan harika bir araç mevcuttur. Terminale şu komutu yazın (kullanıcı adı ve sunucu IP adresini kendinize göre düzenleyin):

      ssh-copy-id kullanıcı_adı@sunucu_ip_adresi
      

      Sizden sunucunun mevcut şifresi istenecektir. Şifreyi girdikten sonra sistem, açık anahtarınızı sunucudaki ~/.ssh/authorized_keys dosyasına otomatik olarak ekleyecektir.

      2. Manuel Olarak Eklemek (Windows veya Alternatif Yol)

      Eğer ssh-copy-id aracı çalışmıyorsa veya Windows komut satırındaysanız, açık anahtarınızı manuel olarak ekleyebilirsiniz. Öncelikle kendi bilgisayarınızda açık anahtarın içeriğini görüntüleyin ve kopyalayın:

      cat ~/.ssh/id_ed25519.pub
      

      Ardından sunucunuza mevcut şifrenizle bağlanın:

      ssh kullanıcı_adı@sunucu_ip_adresi
      

      Sunucuya giriş yaptıktan sonra, eğer yoksa .ssh klasörünü oluşturun ve gerekli izinleri tanımlayın:

      mkdir -p ~/.ssh
      chmod 700 ~/.ssh
      

      Şimdi authorized_keys dosyasını açın (veya oluşturun) ve kopyaladığınız anahtarı bu dosyanın en altına yeni bir satır olarak yapıştırın:

      nano ~/.ssh/authorized_keys
      

      Dosyayı kaydedip kapatın (Nano için CTRL+O, Enter, CTRL+X). Son olarak dosya izinlerini güvenli hale getirin:

      chmod 600 ~/.ssh/authorized_keys
      

      SSH Bağlantı Sorunları ve Çözümleri

      SSH anahtarı ile bağlanırken en sık karşılaşılan hata "Permissions are too open" (İzinler çok açık) hatasıdır. SSH protokolü, gizli anahtarınızın diğer kullanıcılar tarafından okunabilir olmasını güvenlik açığı olarak görür ve bağlantıyı reddeder.

      Eğer bilgisayarınızda gizli anahtar dosyanız için bu hatayı alıyorsanız, terminalde şu komutu çalıştırarak izinleri sadece sizin okuyabileceğiniz şekilde (600) kısıtlayın:

      chmod 600 ~/.ssh/id_ed25519
      

      Benzer şekilde, sunucu tarafındaki .ssh klasörünün izinlerinin 700, authorized_keys dosyasının izinlerinin ise 600 olması zorunludur. Yanlış yapılandırılmış izinler, anahtarınız doğru olsa bile sunucunun sizi reddetmesine neden olur.

      Sunucu Güvenliğini Artırma ve Şifreli Girişi Kapatma

      SSH anahtarınızı başarıyla ekledikten sonra, yeni bir terminal penceresi açarak şifresiz giriş yapıp yapamadığınızı test edin:

      ssh kullanıcı_adı@sunucu_ip_adresi
      

      Eğer anahtarı oluştururken bir parola (passphrase) belirlediyseniz, sistem sizden bu parolayı isteyecektir. Başarıyla giriş yaptıktan sonra, sunucunun güvenliğini maksimum seviyeye çıkarmak için şifre ile girişleri tamamen devre dışı bırakabilirsiniz.

      Dikkat: Şifreli girişi kapatmadan önce SSH anahtarınızla sorunsuz bir şekilde giriş yapabildiğinizden kesinlikle emin olun. Aksi takdirde sunucunuza erişimi tamamen kaybedebilirsiniz.

      Şifreli girişi kapatmak için sunucuda SSH yapılandırma dosyasını açın:

      sudo nano /etc/ssh/sshd_config
      

      Dosya içerisinde şu satırları bulun ve değerlerini aşağıdaki gibi değiştirin (başlarında # işareti varsa kaldırın):

      PasswordAuthentication no
      PubkeyAuthentication yes
      

      Değişiklikleri kaydedip çıktıktan sonra SSH servisini yeniden başlatın:

      sudo systemctl restart sshd
      

      Artık kötü niyetli kişiler sunucunuza şifre denemesi yaparak sızamazlar. Sunucuya erişim sadece sizin fiziksel bilgisayarınızda bulunan gizli anahtar ile mümkün olacaktır.

      SSH Anahtarı Yönetimi İçin En İyi Pratikler

      Sunucu güvenliğinizi sürdürülebilir kılmak için şu ipuçlarına dikkat etmelisiniz:

    • Her Cihaz İçin Ayrı Anahtar: İş yerindeki bilgisayarınız, evdeki dizüstü bilgisayarınız ve mobil cihazınız için ayrı SSH anahtarları oluşturun. Böylece bir cihazınız kaybolduğunda sadece o cihaza ait açık anahtarı sunucudan silerek güvenliği sağlayabilirsiniz.
    • Yedekleme: Gizli anahtarınızı (id_ed25519) güvenli, şifreli bir harici diskte veya şifre yöneticisinde yedekleyin. Bilgisayarınızın bozulması durumunda sunucularınıza erişimi kaybetmemek için bu kritik öneme sahiptir.
    • Düzenli Güncelleme: Eski şifreleme algoritmalarından (örneğin zayıf RSA anahtarlarından) kaçının ve sistemlerinizi güncel tutun. Güvenli bağlantılar için her zaman güncel OpenSSH sürümlerini tercih edin.

    Sıkça Sorulan Sorular

    SSH anahtarı şifreden daha mı güvenli?
    Evet, çünkü asimetrik şifreleme kullanır. Kaba kuvvet (brute-force) saldırılarıyla kırılması imkansıza yakındır ve gizli anahtarınız ağ üzerinden asla taşınmaz.
    SSH anahtarımı kaybedersem sunucuya nasıl erişirim?
    Eğer şifreli girişi kapattıysanız ve anahtarınızın yedeği yoksa, sunucuya doğrudan erişemezsiniz. Bu durumda servis sağlayıcınızın sunduğu web konsolu (VNC) üzerinden şifreli girişi geçici olarak açmanız gerekir.
    WxDigitals
    WxDigitals

    WebTeknoloji.net editör ekibi; web geliştirme, SEO, hosting ve yapay zeka alanlarında üretilen içeriklerin araştırma, test ve yayın süreçlerini yürütür. Tüm incelemeler gerçek kullanım deneyimine, karşılaştırmalar ise resmi dokümantasyon ve güncel fiyatlandırma sayfalarına dayanır.

    Bu içeriği faydalı bulduysanız…

    Haftalık teknoloji & SEO rehberlerimize katılın, 38 maddelik Teknik SEO Kontrol Listesi PDF'ini hediye olarak hemen indirin.

    Yorumlar (0)

    Henüz yorum yapılmamış. İlk yorumu siz yapın!

    Yorum Yazın