"Enter"a basıp içeriğe geçin

Windows Üzerinden SSH Key İle Linux’a Nasıl Bağlanılır?

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 -V

Eğer sürüm bilgisi ekrana geliyorsa sistem hazır demektir.

ssh-keygen

Bu 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.

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_IP

Manuel 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.pub

Bu çıktıyı kopyalayalım. Ardından Linux sunucuya bağlanıp ilgili dosyayı açalım.

nano ~/.ssh/authorized_keys

Kopyalanan 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_keys

SSH 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_IP

Eğ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_IP

Bağ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

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir