Parola ile SSH bağlantısı yerine anahtar tabanlı doğrulama kullanmak, Linux sunucularda güvenliği üst seviyeye taşır. SSH key yöntemi, brute force ve parola sızıntısı gibi riskleri azaltır. Bu yazıda Windows üzerinde SSH key oluşturmayı ve oluşturulan anahtar ile Linux sunucuya bağlanma sürecini ele alıyoruz.
SSH Key Nedir?
Parola ile SSH bağlantısı yerine anahtar tabanlı erişim kullanmak, Linux sunucularda daha güvenli bir yapı sağlar. SSH key yöntemi, saldırı yüzeyini azaltarak erişim kontrolünü güçlendirir. Bu yazıda Windows üzerinde SSH key oluşturma ve Linux sunucuya bu anahtar ile bağlantı kurma sürecini ele alıyoruz.

Anahtar tabanlı doğrulama kullanıldığında parola denemeleri ve izinsiz erişim girişimleri ciddi şekilde azaltılır. Bu yaklaşım, yöneticiler için hem güvenli hem de pratik bir bağlantı yöntemi oluşturur.
PowerShell Üzerinden SSH Key Oluşturma
Windows 10 ve Windows 11 sistemlerde OpenSSH özelliği hazır olarak bulunur. Bu sayede PowerShell aracılığıyla ek yazılım kurmadan SSH key üretme işlemi yapılabilir.


Öncelikle PowerShell’i açalım ve sistemde OpenSSH olup olmadığını kontrol edelim.
ssh -VEğer sürüm bilgisi ekrana geliyorsa sistem hazır demektir.
ssh-keygenBu komut çalıştırıldığında sistem sırasıyla anahtarın kaydedileceği konumu ve isteğe bağlı bir parola belirlemenizi ister. Varsayılan ayarları kabul etmek için Enter tuşuna basmak yeterlidir.
İşlem tamamlandığında kullanıcı dizini altında .ssh klasörü oluşur ve içinde private ve public key dosyaları yer alır.
Windows’ta SSH Key Dosyaları Nerede Saklanır?
SSH anahtarı oluşturulduktan sonra Windows tarafında biri özel biri genel olmak üzere iki dosya oluşur. Bu dosyalar C:\Users\KULLANICI_ADI\.ssh\ dizini altında yer alır. id_rsa private key’dir ve yalnızca kullanıcıda kalmalıdır, id_rsa.pub ise Linux sunucuya eklenen public key dosyasıdır.
Bu iki dosyanın karıştırılması ciddi güvenlik sorunlarına yol açabilir. Özellikle private key’in paylaşılması yetkisiz erişim riskini artırır.
Linux Sunucuda Kullanıcıya Public Key Ekleme
SSH key kullanarak bağlantı kurabilmek için public key’in sunucu tarafında tanımlı olması gerekir. En pratik yol ssh-copy-id komutunu kullanmaktır. Sunucuya parola ile giriş yapabiliyorsan bu komut public key’i doğru dizine ekleyerek işlemi tamamlar.
ssh-copy-id kullanıcı@SUNUCU_IPManuel Olarak Public Key Ekleme
Bazı sistemlerde otomatik yöntem kullanılamayabilir. Bu durumda public key manuel olarak eklenebilir. Öncelikle Windows tarafında public key içeriğini görüntüleyelim.
type %USERPROFILE%\.ssh\id_rsa.pubBu çıktıyı kopyalayalım. Ardından Linux sunucuya bağlanıp ilgili dosyayı açalım.
nano ~/.ssh/authorized_keysKopyalanan anahtarı bu dosyaya yapıştırdıktan sonra kaydedelim. Ardından dosya ve klasör yetkilerini kontrol edelim. SSH, güvenlik nedeniyle bu izinlerin doğru olmasını ister.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysSSH Key ile Linux Sunucuya Bağlanma
Public key sunucuya eklendikten sonra artık parola girmeden bağlantı kurulabilir. Windows PowerShell üzerinden aşağıdaki komut yeterlidir.
ssh kullanıcı@SUNUCU_IPEğer sistemde birden fazla SSH key varsa ve belirli bir anahtar kullanılacaksa -i parametresi ile private key belirtilebilir.
ssh -i C:\Users\KULLANICI_ADI\.ssh\id_rsa kullanıcı@SUNUCU_IPBağlantı doğrudan açılıyorsa SSH key yapılandırması başarılıdır.
PuTTY Kullanarak SSH Anahtar Yapılandırması
PowerShell yerine PuTTY kullanan sistemlerde SSH key üretimi PuTTYgen aracılığıyla gerçekleştirilir. Private key .ppk dosyası olarak saklanırken, public key Linux sunucuda yetkilendirme için authorized_keys dosyasına eklenir.
PuTTYgen’in Sistemde Bulunması
PuTTYgen, PuTTY yazılımı ile birlikte otomatik olarak kurulur. Ek bir kurulum adımı gerektirmez.
PuTTYgen Uygulamasını Çalıştırma
PuTTYgen’e Windows Başlat menüsündeki PuTTY klasöründen ulaşılır. Program açıldığında anahtar oluşturma ekranı doğrudan görüntülenir.


Yeni SSH Anahtarı Oluşturma
Anahtar türü olarak genellikle RSA seçilir ve 2048 bit çoğu kullanım için yeterlidir. Bilgileri girdikten sonra Genarate butonuna basalım.

Private Key ve Parola Ayarı
Anahtar üretildikten sonra private key .ppk formatında kaydedilir ve tercihen parola ile korunur. Bu dosya, PuTTY bağlantılarında kullanılacağı için güvenli bir yerde saklanmalıdır.
Public Key’i Linux Sunucuya Ekleme
Public key, Linux sunucuda ilgili kullanıcının ~/.ssh/authorized_keys dosyasına eklenir. Bu işlem kullanıcıya parola girmeden SSH erişimi sağlar.

PuTTY ile SSH Key Kullanarak Bağlanma
PuTTY ayarlarında SSH → Auth bölümünden .ppk uzantılı private key dosyası seçilir. Bağlantı başlatıldığında anahtar doğrulaması otomatik olarak yapılır.

SSH key ile bağlantı sağlandıktan sonra sistem güvenliği daha da artırılabilir. Parola ile SSH erişimini kapatmak, root kullanıcıyla doğrudan bağlantıyı devre dışı bırakmak ve Fail2ban gibi ek güvenlik katmanları kullanmak sunucuyu çok daha dayanıklı hâle getirir.
Sık Sorulan Sorular
authorized_keys dosyası var ama SSH key hiç okunmuyor?
SSH, dosya ve klasör izinlerine çok duyarlıdır. .ssh klasörü 700, authorized_keys dosyası 600 iznine sahip değilse anahtar tamamen yok sayılır.
ssh-copy-id çalışmıyor, Windows’ta bu komut yok mu?
Bazı Windows sürümlerinde ssh-copy-id varsayılan olarak gelmez. Bu durumda public key’i manuel olarak authorized_keys dosyasına eklemek gerekir.
Aynı Windows makinede birden fazla SSH key kullanabilir miyim?
~/.ssh/config dosyası oluşturarak her sunucu için farklı anahtar tanımlanabilir ve bağlantı yönetimi ciddi şekilde kolaylaşır.
SSH key ile Linux sunucuya bağlanabiliyorum ama rsync komutu çalışmıyor?
SSH bağlantısı sorunsuz çalışsa bile rsync işlemi farklı bir kullanıcı, farklı bir anahtar dosyası veya farklı SSH parametreleriyle çalışıyor olabilir. Bu nedenle özellikle -e ssh parametresi, kullanılan SSH key ve hedef dizin izinleri mutlaka kontrol edilmelidir. İki sunucu arasında rsync ile dosya transferinin doğru şekilde yapılandırılmasına dair detaylı anlatımı ilgili rehberde bulabilirsiniz.