SSH key ile bağlantı, Linux sunucular için parola kullanımına kıyasla daha güvenli bir erişim yöntemi sunar. Anahtar tabanlı kimlik doğrulama, yetkisiz erişim riskini önemli ölçüde azaltır. Bu yazıda Windows üzerinden SSH key oluşturma sürecini ve Linux sunucuya bağlanma aşamalarını inceleyeceğiz.
SSH Key Nedir?
SSH key kullanımı, Linux sunucular için parola tabanlı erişime göre daha güvenli bir yapı sunar. Anahtar ile bağlantı kurulması, yetkisiz erişim risklerini azaltır. Bu içerikte Windows üzerinden SSH anahtarı oluşturma ve Linux sunucuya bu anahtar ile bağlanma adımlarını inceleyeceğiz.

SSH key kullanımı, parola tahminine dayalı saldırıları ve otomatik brute force denemelerini büyük ölçüde engeller. Aynı zamanda bağlantı sürecini hızlandırarak sistem yöneticilerine daha sorunsuz bir erişim deneyimi sunar.
Windows’ta SSH Anahtarı Oluşturma
Windows 10 ve 11 sürümleri OpenSSH desteği ile birlikte gelir. Bu destek sayesinde PowerShell üzerinden ek bir araç yüklemeden SSH anahtarı oluşturmak mümkündür.


Ö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.
SSH Key Dosyalarının Konumu
SSH anahtarı oluşturulduktan sonra Windows tarafında biri private biri public olmak üzere iki dosya oluşur. Bu dosyalar C:\Users\KULLANICI_ADI\.ssh\ dizini altında yer alır. id_rsa private key olarak saklanmalı ve paylaşılmamalıdır, id_rsa.pub ise Linux sunucuya eklenen public key’dir.
Bu ayrımın doğru yapılması hayati önem taşır. Yanlış anahtarın paylaşılması, sistem güvenliği açısından ciddi riskler oluşturur.
Linux Tarafında SSH Public Key Ekleme
Anahtar tabanlı bağlantının çalışması için public key’in Linux sunucuda kullanıcıya tanımlanması şarttır. Bu işlem manuel olarak yapılabileceği gibi ssh-copy-id komutu ile çok daha pratik şekilde gerçekleştirilebilir. Sunucuya hâlihazırda parola ile bağlanabiliyorsan tek bir 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 Anahtarı Oluşturma
PuTTY tercih eden kullanıcılar SSH key oluşturma işlemini PowerShell yerine PuTTYgen aracılığıyla gerçekleştirir. Oluşturulan private key .ppk uzantılı olarak kaydedilir, public key ise Linux sunucuda ilgili kullanıcının authorized_keys dosyasına tanımlanır.
PuTTYgen Nasıl Temin Edilir?
PuTTYgen, PuTTY yazılımı ile birlikte gelen bir bileşendir. PuTTY kurulumu yapıldığında PuTTYgen otomatik olarak sisteme eklenmiş olur.
PuTTYgen’e Erişim
PuTTYgen, Başlat menüsünde PuTTY klasörü altında yer alır. Uygulama açıldığında anahtar oluşturma arayüzü 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, arka planda farklı SSH parametreleriyle çalışıyor olabilir. Kullanılan anahtar dosyası, bağlanılan kullanıcı ve hedef dizin izinleri bu tür sorunların en yaygın nedenleridir. Özellikle -e ssh parametresi doğru şekilde tanımlanmalıdır. İki sunucu arasında rsync ile dosya transferinin doğru kullanımına dair kapsamlı anlatım ilgili rehberde yer almaktadır.