Windows ve SSH Key ile Linux Sunucuya Güvenli Bağlantı

Linux sunuculara erişimde en güvenli yöntemlerden biri SSH key kullanımıdır. Parola tabanlı bağlantılar yerine anahtar ile doğrulama yapmak, güvenlik seviyesini ciddi şekilde artırır. Bu içerikte Windows ortamında SSH anahtarı oluşturma ve bu anahtar ile Linux sunucuya bağlantı kurma adımlarını ele alacağız.

SSH Key Nedir?

Linux sunuculara erişimde en güvenli yöntemlerden biri SSH key kullanımıdır. Parola ile yapılan bağlantılar yerine anahtar tabanlı doğrulama tercih edildiğinde güvenlik seviyesi önemli ölçüde yükselir. Bu yazıda Windows ortamında SSH key oluşturma ve bu anahtar ile Linux sunucuya bağlantı kurma sürecini ele alacağız.

Bu yapı sayesinde brute force saldırıları ve parola deneme girişimleri büyük oranda etkisiz hale getirilir. Yetkisiz erişim riskinin azalmasıyla birlikte sistem yöneticileri için daha hızlı, daha stabil ve kesintisiz bir bağlantı süreci sağlanır.

Windows Ortamında SSH Key Oluşturma

Windows 10 ve Windows 11 işletim sistemlerinde OpenSSH bileşeni varsayılan olarak yer alır. Bu sayede PowerShell kullanarak herhangi bir ek yazılım kurmaya gerek kalmadan SSH key oluşturma işlemi doğrudan gerçekleştirilebilir.

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

SSH Anahtarının Windows Üzerindeki Konumu

SSH key oluşturma işlemi tamamlandığında Windows sisteminde iki ayrı anahtar dosyası meydana gelir. Bu dosyalar kullanıcı dizini altında bulunan .ssh klasörü içinde saklanır. id_rsa dosyası private key olarak görev yapar ve gizli tutulmalıdır, id_rsa.pub dosyası ise public key olup Linux sunucuya tanımlanır.

Private ve public anahtarların doğru şekilde ayırt edilmesi kritik öneme sahiptir. Private key’in paylaşılması, sunucu güvenliğini doğrudan tehlikeye atar.

Linux Sunucuya Public Key Tanımlama

SSH key ile bağlantı kurulabilmesi için public key’in Linux sunucu üzerinde ilgili kullanıcı hesabına eklenmesi gerekir. Bu işlem için en hızlı ve güvenilir yöntem ssh-copy-id komutunu kullanmaktır. Sunucuya parola ile erişimin mevcutsa, bu komut public key’i otomatik olarak doğru konuma ekler.

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 Üzerinden SSH Key ile Bağlantı Kurma

PowerShell yerine PuTTY kullanan kullanıcılar için SSH key oluşturma süreci farklı bir araç üzerinden yürütülür. Bu yöntemde PuTTYgen kullanılarak anahtar çifti üretilir, private key .ppk formatında saklanır ve public key Linux sunucuda authorized_keys dosyasına eklenir.

PuTTYgen Aracının Kurulumu

PuTTYgen, PuTTY kurulum paketiyle birlikte otomatik olarak sisteme yüklenir. Ayrı bir indirme veya ek yapılandırma yapılmasına gerek yoktur.

PuTTYgen’i Başlatma

PuTTYgen uygulamasına Windows Başlat menüsünde yer alan PuTTY klasörü üzerinden erişilir. Program açıldığında anahtar üretme ekranı doğrudan kullanıma hazır şekilde gelir.

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ı kurulmasına rağmen rsync işlemi başarısız oluyorsa, kullanılan kullanıcı hesabı, SSH key veya bağlantı parametreleri farklı olabilir. Rsync komutunda belirtilen -e ssh seçeneği, anahtar dosyası ve hedef dizin yetkileri mutlaka kontrol edilmelidir. Rsync ile iki Linux sunucu arasında dosya transferinin doğru yapılandırılması için detaylı anlatımı rehberde bulabilirsiniz.

Yorum yapın