Linux sunuculara bağlanırken en güvenli yöntemlerden biri SSH key kullanmaktır. Parola ile bağlantı yerine SSH anahtarı kullanmak, güvenliği artırır. Bu yazıda Windows ortamında SSH key oluşturmayı ve bu anahtar ile Linux sunucuya bağlanmayı nasıl yapabilir bunu ele alacağız.
SSH Key Nedir?
SSH key sistemi iki parçalı bir yapıya sahiptir. Birinci parça kullanıcıda bulunan private key, ikinci parça ise sunucuya eklenen public key’dir. Bağlantı sırasında sunucu, kendisine eklenen public key ile istemcideki private key’in eşleşip eşleşmediğini kontrol eder.

Bu yapı sayesinde brute force saldırıları, parola tahmin denemeleri ve yetkisiz erişimler büyük ölçüde engellenmiş olur. Aynı zamanda sistem yöneticileri için çok daha hızlı ve sorunsuz bir bağlantı deneyimi sunar.
Windows’ta SSH Key Oluşturma
Windows 10 ve Windows 11 sistemlerde OpenSSH desteği varsayılan olarak gelir. Bu sayede PowerShell üzerinden ek bir program kurmadan doğrudan SSH key oluşturabiliriz.


Ö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.
Oluşturulan SSH Key Dosyaları Nerede Bulunur?
SSH key oluşturma işlemi tamamlandığında Windows tarafında iki temel dosya oluşur. Bu dosyalar C:\Users\KULLANICI_ADI\.ssh\ dizini altında yer alır. id_rsa adlı dosya private key’dir ve kesinlikle paylaşılmamalıdır. id_rsa.pub ise public key’dir ve Linux sunucuya eklenmesi gereken anahtardır.
Bu ayrımı doğru yapmak çok önemlidir. Yanlış dosyanın paylaşılması ciddi güvenlik riskleri doğurur.
Public Key’i Linux Sunucuya Ekleme
SSH key ile bağlantı kurabilmek için public key’in Linux sunucuda ilgili kullanıcıya tanımlanması gerekir. En pratik yöntem ssh-copy-id komutunu kullanmaktır. Sunucuya hâlen parola ile erişimin varsa aşağıdaki komut yeterlidir.
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 Kullananlar İçin SSH Key
PowerShell yerine PuTTY kullanan kullanıcılar için süreç biraz farklı ilerler. PuTTYgen ile anahtar üretilir, private key .ppk formatında kaydedilir ve public key Linux sunucudaki authorized_keys dosyasına eklenir.
PuTTYgen Kurulumu
PuTTYgen, PuTTY kurulum paketiyle birlikte gelir.
PuTTYgen’i Çalıştırma
Windows Başlat menüsünden PuTTY klasörü altından erişilir. 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.
Daha önceden hazırlamış olduğumuz blog yazımızı paylaşıyorum.
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ı başarılı olsa bile rsync, farklı kullanıcı, farklı key veya farklı SSH parametreleriyle çalışıyor olabilir. Özellikle -e ssh parametresi, kullanılan anahtar dosyası ve hedef dizin izinleri kontrol edilmelidir.
İki sunucu arasında rsync ile dosya transferinin doğru yapılandırılmasına dair detaylı bir anlatımı şu rehberde bulabilirsiniz.
Linux rsync ile iki sunucu arası dosya transferi
