Windows 10/11 Üzerinde SSH Server Kurulumu | Kapsamlı OpenSSH Rehberi

Hızlı Bakış

Windows makinenizde uzaktan yönetim için SSH Server kurulumu, yerleşik OpenSSH paketiyle dakikalar içinde tamamlanıyor. Bu rehber, Windows 10 ve 11'de OpenSSH Server'ı sıfırdan kurmanızı sağlıyor. Kurulum sonrası uzaktan komut çalıştırma, SFTP ile dosya transferi ve anahtar tabanlı kimlik doğrulama gibi yeteneklere kavuşuyorsunuz. Örneğin GitHub Actions ve Ansible, Windows sunuculara güvenli kabuk üzerinden bağlanıyor. Ayrıca RDP'ye kıyasla kaynak tüketimi düşüyor. Böylece güvenli uzaktan erişim altyapınızı hızla kuruyorsunuz.

Windows makinenizde uzaktan yönetim yapmak istiyorsunuz. Belki bir sunucuyu komut satırından yöneteceksiniz. Belki de CI/CD süreçlerinize güvenli bir kanal açacaksınız. İşte tam bu noktada SSH Server kurulumu devreye giriyor.

Geleneksel olarak RDP kullanıyorduk. Ancak RDP ağır bir protokoldür. Üstelik güvenlik açıkları da cabası. SSH ise hafif, şifreli ve otomasyona son derece uygun bir uzak bağlantı protokolü sunuyor.

Bu rehberde Windows 10 ve Windows 11 üzerinde OpenSSH Server’ı sıfırdan kuracaksınız. Ayrıca Server 2022 ve Server 2025 sürümlerini de öğreneceksiniz. Ardından anahtar çifti oluşturma, güvenlik duvarı kuralları, SFTP ve port yönlendirme gibi konulara hakim olacaksınız.

Ben bu kurulumu onlarca kez yaptım. Hem kendi laboratuvarımda hem de canlı üretim ortamlarında test ettim. Sizlere sadece dokümantasyonda yazanı değil, sahada işe yarayanı anlatacağım.

Hazırsanız kahvenizi alın ve koltuğunuza yerleşin. Çünkü bu rehber, Windows’ta Secure Shell dünyasına tam anlamıyla dalmanızı sağlayacak!

SSH Server Kurulumu | Windows 10 & 11 OpenSSH Rehberi

SSH Server Kurulumu Nedir ve Windows’ta Neden OpenSSH Kullanmalısınız?

Kısaca söyleyeyim: SSH Server kurulumu, bir Windows makinesini sunucuya dönüştürme işlemidir. Bu sunucu uzaktan komut çalıştırır ve dosya transferi yapar. Bu işlem için Microsoft, yerleşik OpenSSH paketini sunuyor.

Peki telnet kurulumu gibi eski protokolleri veya RDP gibi grafik çözümleri neden tercih etmiyoruz? Bunun yerine neden SSH kullanıyoruz? Çünkü SSH, istemci-sunucu mimarisi üzerinde çalışır. Ayrıca tüm trafiği uçtan uca şifreler. Yani aradaki veriyi kimse okuyamaz.

Özellikle bulut ortamlarında ve DevOps süreçlerinde SSH vazgeçilmezdir. GitHub Actions, Ansible ve benzeri araçlar Windows sunuculara SSH ile bağlanır. Çünkü SSH, WinRM’e göre çok daha hafif ve evrenseldir.

SSH Server kurulumu yaptığınızda şu yeteneklere kavuşursunuz:

  • Uzaktan komut satırı ve tam yetkili kabuk erişimi
  • Güvenli dosya transferi (SFTP ve SCP)
  • Port yönlendirme ve tünel oluşturma
  • Otomasyon araçlarıyla sorunsuz entegrasyon
  • Parolasız giriş için anahtar tabanlı kimlik doğrulama

Ben şahsen Windows makinelerde RDP’yi acil durumlar için saklıyorum. Günlük yönetim ve otomasyon işlerimi her zaman SSH üzerinden yürütüyorum. Çünkü SSH oturumları çok daha az kaynak tüketir. Üstelik bu süreçleri kolayca otomatikleştirebilirsiniz.

SSH Protokolü ve OpenSSH Paketi: Temel Kavramlar

SSH, “Secure Shell” kelimelerinin kısaltmasıdır. Türkçeye güvenli kabuk olarak çevirebiliriz. Tatu Ylönen bu protokolü 1995 yılında geliştirdi. Geliştirici, bu protokolü ağ üzerindeki iletişimi şifrelemek için tasarladı.

OpenSSH ise SSH protokolünün en yaygın ve açık kaynaklı uygulamasıdır. Geliştiriciler bu aracı OpenBSD projesi kapsamında geliştiriyor. Üstelik neredeyse tüm Linux dağıtımlarında varsayılan olarak gelir. Microsoft da bu projeyi Windows’a Win32-OpenSSH adıyla uyarladı.

Microsoft, Windows’ta OpenSSH’yi hem istemci hem de sunucu bileşeni olarak sunar. İstemci tarafını ssh.exe temsil eder. Sunucu tarafı ise sshd.exe servisi ve sftp-server.exe alt sisteminden oluşur.

Şimdi temel bileşenleri bir tabloda netleştirelim:

BileşenGöreviVarsayılan Konum
ssh.exeİstemci tarafı; uzak sunucuya bağlanırC:\Windows\System32\OpenSSH\
sshd.exeSunucu servisi; gelen bağlantıları dinlerC:\Windows\System32\OpenSSH\
sftp-server.exeGüvenli dosya transferi alt sistemiC:\Windows\System32\OpenSSH\
ssh-keygen.exeAnahtar çifti oluşturma aracıC:\Windows\System32\OpenSSH\
ssh-agent.exeKimlik doğrulama ajanıC:\Windows\System32\OpenSSH\
sshd_configSunucu yapılandırma dosyasıC:\ProgramData\ssh\

Dikkat ederseniz yapılandırma dosyası System32 altında değil. Çünkü C:\ProgramData\ssh\sshd_config yolu, hem 32-bit hem 64-bit süreçler için ortak bir noktadır. Bu detayı ilk kurulumda atlarsanız saatler kaybedebilirsiniz.

Ben ilk kurulumlarımda bu yolu karıştırmıştım. Sonra fark ettim ki Windows, OpenSSH’ı kurarken yapılandırmayı ProgramData altına taşıyor. Bu yüzden düzenlemelerinizi her zaman bu dosya üzerinde yapmalısınız.

İpucu
Yapılandırma dosyasını düzenlemeden önce mutlaka bir yedek alın. Copy-Item "C:\ProgramData\ssh\sshd_config" "C:\ProgramData\ssh\sshd_config.bak" komutu, olası bir hatada sizi kurtarır.

Windows’ta OpenSSH vs RDP: Hangisi Ne Zaman Kullanılmalı?

Windows dünyasında uzaktan erişim denince akla ilk RDP gelir. Ancak OpenSSH ile RDP tamamen farklı ihtiyaçlara hizmet eder. Hangisini seçeceğinize karar vermek için önce amacınızı netleştirmelisiniz.

Aşağıdaki tablo, iki çözümü yan yana koyuyor. Ben bu karşılaştırmayı ekiplerime eğitim verirken sık sık kullanıyorum:

KriterOpenSSHRDP
Kullanım AmacıKomut satırı, otomasyon, dosya transferiGrafik arayüz, masaüstü erişimi
Kaynak TüketimiÇok düşük (CPU, bellek, bant genişliği)Yüksek (grafik işleme, oturum yönetimi)
GüvenlikUçtan uca şifreleme, anahtar tabanlı kimlikNLA, TLS; ancak daha geniş saldırı yüzeyi
OtomasyonMükemmel (PowerShell, CI/CD, Ansible)Zayıf (GUI etkileşimi gerekir)
Port22 (TCP)3389 (TCP/UDP)
BetiklenebilirlikTam (scp, sftp, rsync over SSH)Yok
Eşzamanlı OturumSınırsız (yapılandırmaya bağlı)Windows 10/11’de 1, Server’da 2+

Peki hangisini ne zaman kullanmalısınız? İşte benim sahada uyguladığım kural:

  • Sunucu yönetimi ve otomasyon için her zaman SSH tercih edin. Çünkü Ansible, Terraform ve GitHub Actions SSH ile Windows’u yönetir.
  • Grafik arayüz gerektiren işler için RDP kullanın. Örneğin Active Directory veya GUI tabanlı uygulama yönetiyorsanız RDP şarttır.
  • Dosya transferi için SFTP kullanın. RDP üzerinden dosya kopyalamak yavaş ve risklidir.
  • Acil durum erişimi için ikisini de hazır tutun. SSH çökerse RDP ile bağlanıp müdahale edebilirsiniz.
DENEYİM
Bir müşterimin üretim sunucusunda RDP servisi yanıt vermiyordu. SSH üzerinden bağlanıp Restart-Service TermService komutuyla RDP’yi yeniden başlattım. Eğer SSH kurulu olmasaydı, sunucuya fiziksel erişim gerekecekti. İşte bu yüzden her Windows sunucusunda SSH bulunduruyorum.

Windows 10 ve 11’de OpenSSH Server Nasıl Kurulur? (PowerShell ve GUI Yöntemleri)

Windows 10 ve 11’de OpenSSH Server kurmak için birden fazla yol var. Microsoft, bu bileşeni Windows isteğe bağlı özellikler (Features on Demand) kapsamında sunuyor. Yani kurulum için ekstra bir yükleyici indirmenize gerek yok.

Ek olarak, Windows, isteğe bağlı özellikleri Features on Demand paketiyle sunuyor. Üstelik, Media Feature Pack de bu sistemin bir parçası.

Ben genellikle PowerShell yöntemini tercih ediyorum. Çünkü tek bir komutla işi bitiriyor ve otomasyona uygun bir çıktı veriyor. Ancak GUI sevenler için sihirbaz tabanlı kurulum da mevcut.

Aşağıda her iki yöntemi de adım adım göstereceğim. Ayrıca Windows Server 2025 için Server Manager yolunu ve manuel kurulum senaryosunu da ele alacağım.

PowerShell ile OpenSSH Server Kurulumu: Add-WindowsCapability Komutu

PowerShell yöntemi, SSH Server kurulumu için en hızlı ve en temiz seçenektir. Yönetici olarak açtığınız bir PowerShell penceresinde tek bir komutla işi halledebilirsiniz.

Öncelikle mevcut kurulum durumunu kontrol edelim. Böylece gereksiz bir işlem yapmaktan kurtulursunuz:

Get-WindowsCapability -Online -Name OpenSSH.Server*

Bu komut size State : Installed veya State : NotPresent çıktısını verir. Eğer NotPresent görüyorsanız kuruluma geçebilirsiniz. Şimdi asıl kurulum komutunu çalıştırın:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Bu komut, Microsoft’un resmi OpenSSH paketini indirir ve sisteme entegre eder. İşlem genellikle 30 saniye ile 2 dakika arasında sürer. Kurulum tamamlandığında State : Installed çıktısını alırsınız.

Ardından servisi başlatmalısınız. Çünkü kurulum otomatik olarak servisi çalıştırmaz:

Start-Service sshd

Şimdi servisin otomatik başlatılmasını ayarlayalım. Böylece her yeniden başlatmada SSH servisi kendiliğinden ayağa kalkar:

Set-Service -Name sshd -StartupType Automatic

Son olarak güvenlik duvarı kuralını eklemelisiniz. Neyse ki Windows, OpenSSH kurulumunda bu kuralı otomatik oluşturur. Yine de kontrol etmekte fayda var:

Get-NetFirewallRule -Name *OpenSSH*

Eğer kural yoksa manuel olarak ekleyeceğiz. Ama önce Windows Server 2025’teki farklı yaklaşıma bakalım.

Not
Windows 10 ve 11’de Add-WindowsCapability komutu bazen 0x800F0954 hatası verir. Bu hatanın çözümünü ilerleyen bölümlerde detaylıca ele alacağım. Şimdilik kurulumun başarılı olduğunu varsayalım.

Windows Server 2025’te Server Manager ile SSH Etkinleştirme

Windows Server 2025, OpenSSH konusunda çok önemli bir yenilik getiriyor. Artık sshd.exe servisi ve OpenSSH bileşenleri varsayılan olarak kurulu geliyor.

Yani SSH Server kurulumu için ekstra bir çaba harcamanıza gerek yok. Ancak servisi manuel olarak başlatmanız ve yapılandırmanız gerekiyor. Çünkü Microsoft, güvenlik gerekçesiyle servisi varsayılan olarak durduruyor.

Server Manager üzerinden SSH’ı etkinleştirmek için şu adımları izleyin:

  1. Server Manager’ı açın ve Local Server sekmesine gidin.
  2. Sağ taraftaki Remote SSH Access bağlantısına tıklayın.
  3. Açılan pencerede Enable SSH seçeneğini işaretleyin.
  4. Apply butonuna basın. Bundan sonra, Windows, servisi başlatır ve güvenlik duvarı kuralını ekler.

Bu tek adımlık işlem, önceki sürümlerdeki karmaşık kurulum sürecini ortadan kaldırıyor. Özellikle Windows Server 2022 OpenSSH kurulumu ile uğraşanlar için büyük bir kolaylık.

Ayrıca Server 2025, OpenSSH Users grubu adında yeni bir yerel grup getiriyor. Bu gruba kullanıcı ekleyerek SSH erişimini kolayca kontrol edebilirsiniz. Gruba eklenmeyen kullanıcılar SSH üzerinden bağlanamaz.

Ben bu grubu hemen hemen her sunucuda kullanıyorum. Çünkü sshd_config dosyasında AllowGroups direktifiyle birleştirdiğinizde mükemmel bir erişim kontrolü sağlıyor. İlerleyen bölümlerde bu yapılandırmayı detaylandıracağım.

Gerçek
Windows Server 2025’te OpenSSH servisi varsayılan olarak gelir ancak durdurulmuş haldedir. Bu, Microsoft’un “güvenli varsayılan” politikasının bir parçasıdır. Servisi siz etkinleştirene kadar hiçbir bağlantı kabul etmez.

Manuel Kurulum: Win32-OpenSSH ZIP ve MSI ile Güncelleme

Bazı senaryolarda Windows Update veya isteğe bağlı özellikler çalışmaz. Örneğin hava boşluklu (air-gapped) bir ağdaysanız veya WSUS kullanıyorsanız Add-WindowsCapability hata verebilir. İşte o zaman manuel kurulum devreye girer.

Microsoft, Win32-OpenSSH sürümlerini GitHub üzerinden yayınlıyor. Buradan ZIP arşivini indirip manuel olarak kurabilirsiniz. Ayrıca MSI paketi de mevcut; bu paket, kurumsal dağıtım için idealdir.

Manuel kurulum adımları şöyle:

Adım 1

GitHub’daki PowerShell/Win32-OpenSSH deposundan en son sürümü indirin. 2026 itibarıyla güncel sürüm OpenSSH 10.4‘tür.

Adım 2

ZIP arşivini C:\Program Files\OpenSSH gibi bir klasöre çıkartın. Önce C:\Program Files\ altında OpenSSH adında bir klasör oluşturun.

Adım 3

Yönetici PowerShell penceresinde şu komutu çalıştırın:

powershell.exe -ExecutionPolicy Bypass -File Install-sshd.ps1

Adım 4

Bu betik, gerekli dosyaları System32 altına kopyalar ve servisi kaydeder. Ardından servisi başlatın ve otomatik başlatmaya ayarlayın.

Adım 5

MSI paketi ile kurulum yapıyorsanız msiexec /i OpenSSH-Win64.msi komutunu kullanabilirsiniz. MSI, Grup İlkesi üzerinden dağıtım için idealdir. Ayrıca sessiz kurulum parametrelerini destekler.

Ben özellikle sunucu filolarında MSI paketini tercih ediyorum. Çünkü SCCM veya Intune üzerinden tek seferde yüzlerce sunucuya kurabilirsiniz. ZIP yöntemi ise daha çok tek seferlik kurulumlar veya test ortamları için uygundur.

Windows’ta isteğe bağlı özellikler bazen sorun çıkarıyor. .NET Framework 3.5 kurulumu da benzer sıkıntılar yaşatıyor. Bundan dolayı tam olarak burada, önceden hazırlık yapmalısınız.

Uyarı
Manuel kurulumda Install-sshd.ps1 betiğini çalıştırmayı unutmayın. Sadece dosyaları kopyalamak yeterli değildir. Betik, servis kaydını ve gerekli kayıt defteri anahtarlarını oluşturur. Bu adımı atlarsanız Start-Service sshd komutu “servis bulunamadı” hatası verir.

GUI Kurulum: setupssh.exe Sihirbazı ile Adım Adım OpenSSH Server Kurulumu

Komut satırından çekinenler için sihirbaz tabanlı kurulum harika bir alternatiftir. Ben özellikle yeni başlayanlara bu yöntemi öneriyorum. Çünkü her adımda görsel geri bildirim alırsınız.

Öncelikle sanal makine veya fiziksel makinede ağ yapılandırmasını doğrulayın. Host makinenizin ağ bağdaştırıcı IP adresini kontrol edin.

Adım 1

Host makinenizin ağ bağdaştırıcı detaylarına bakın. Burada, IP adresini, alt ağ maskesini ve ağ geçidini not edin.

Ağ Bağlantısı Detayları

Adım 2

Guest makinenin ağ ayarını VMnet4 veya Bridged olarak yapılandırın. Ardından makinenin DHCP sunucudan aldığı IP adresine bakın.

Sanal Makine Ağ Bağdaştırıcı Ayarları

Adım 3

Şimdi VM’nin ağ bağdaştırıcı ayarını yapmalıyız. Bu yüzden bu ayarı Virtual Network Editor üzerinden denetleyin.

Sanal Ağ Editörü

Adım 4

VMware Virtual Network Editor programında VMnet4 veya yeni bir VMnet oluşturabilirsiniz. VMnet4 adaptör kartını Bridged olarak ayarladığınızı kontrol edin.

Virtual Network Editor

Adım 5

Bilgisayarınıza indirdiğiniz OpenSSH programını sanal makineye kopyalayın. Ardından kurulumu başlatmak için setupssh.exe dosyasını yönetici olarak çalıştırın.

OpenSSH Programı

Adım 6

Kurulacak programın dilini seçin. Ardından OK butonuna tıklayarak ilerleyin.

Kurulacak Dili Seçme

Adım 7

Sihirbaz, OpenSSH programı kurulumunu hazırlar. Bu aşamada birkaç saniye beklemeniz gerekir.

OpenSSH Kurulumu Başlıyor

Adım 8

OpenSSH kurulum penceresinde Next butonuyla ilerleyin.

Kurulum Sihirbazı

Adım 9

OpenSSH lisans anlaşmasını kabul ederek sürece devam edin.

OpenSSH Lisans Anlaşmasını Kabul Etme

OpenSSH Sunucu Yapılandırması ve Kurulumun Tamamlanması

Adım 1

Components (Bileşenler) penceresinde Server seçeneğini işaretleyin. Client seçeneği istemci tarafı içindir.

Bileşenleri Seçme

Adım 2

Kurulum lokasyonu penceresinde varsayılan konumu değiştirmeden ilerleyin.

Kurulum Lokasyonunu Seçme

Adım 3

Başlangıç menü klasörü seç penceresinde Next ile devam edin.

Başlat Menüsü Klasörünü Seçme

Adım 4

Run as LOCAL_SYSTEM penceresinde bu ayarı seçin. Bu seçenek en yüksek yetkiyi verir.

Run as LOCAL_SYSTEM

Adım 5

SSH bağlantısı, varsayılan olarak port numarası 22’yi kullanır. Bu pencerede 22 değerini bırakıp ilerleyin.

Port Numarasını Yapılandırma

Adım 6

Güvenli bağlantı için anahtar oluşturduğunuzda varsayılan değeri kabul edin. 2048 bit yeterlidir.

Oluşturulacak Anahtarın Boyutunu Belirleme

Adım 7

Kullanıcı ayar penceresinde Local Users seçeneğini işaretleyin. Domain kullanıcıları için farklı seçenek mevcut.

Kullanıcı Tipi Seçimi

Adım 8

Windows 10 veya Windows 11 sisteminize OpenSSH kurarken bekleyin.

OpenSSH Kuruluyor

Adım 9

OpenSSH kurulumu tamamlandıktan sonra Finish butonuna basın. Ardından servisi manuel başlatmanız gerekir.

Kurulum Tamamlandı

TAVSİYE
GUI kurulumu bittikten sonra mutlaka Get-Service sshd komutuyla servis durumunu doğrulayın. Kurulum bazen servisi başlatmayı atlar. Start-Service sshd ile manuel başlatabilirsiniz.

sshd Servisini Başlatma, Otomatik Başlatma ve Windows Güvenlik Duvarı Kuralı

OpenSSH Server kurulumu tamamlandıktan sonra sıra servisi yapılandırmaya gelir. Bu adım, yapılandırma sürecinin en kritik parçasıdır. Çünkü kurulum yapmak yeterli değil; servisin çalışması ve ağdan erişilebilir olması gerekir.

Şimdi üç temel konuyu ele alacağız: servisi başlatma ve otomatik başlatmaya ayarlama, güvenlik duvarı kuralı ekleme ve bağlantıyı doğrulama. Her birini adım adım göstereceğim.

sshd Servisini Başlatma ve Otomatik Başlatmaya Ayarlama

Kurulumdan sonra sshd servisi genellikle durdurulmuş haldedir. Servisi başlatmak için yönetici yetkisiyle şu komutu çalıştırın:

Adım 1

Start-Service sshd

Adım 2

Servisin durumunu kontrol etmek için Get-Service sshd komutunu kullanın. Status : Running çıktısını görmelisiniz. Eğer Stopped görüyorsanız, olay günlüğüne bakarak hata nedenini bulmalısınız.

Adım 3

Şimdi servisin her açılışta otomatik başlamasını sağlayalım:

Set-Service -Name sshd -StartupType Automatic

Bu ayar, sunucu yeniden başlatıldığında SSH servisinin kendiliğinden ayağa kalkmasını sağlar. Üretim sunucularında bu ayar hayati önem taşır. Aksi halde her yeniden başlatmadan sonra manuel müdahale gerekir.

Adım 4

Servis bağımlılıklarını da kontrol etmekte fayda var. Örneğin ssh-agent servisi, anahtar tabanlı kimlik doğrulama için gereklidir. Onu da otomatik başlatmaya ayarlayın:

Set-Service -Name ssh-agent -StartupType Automatic

Ben genellikle sshd ve ssh-agent servislerini birlikte yapılandırıyorum. Böylece hem sunucu tarafı hem istemci tarafı hazır oluyor. Özellikle CI/CD pipeline’larında bu ikili kombinasyon şarttır.

TAVSİYE
Servis kurtarma (recovery) ayarlarını da yapılandırın. sc.exe failure sshd reset= 86400 actions= restart/5000/restart/10000/restart/20000 komutu, servis çöktüğünde otomatik olarak yeniden başlatır. Bu ayar, kesintisiz uzaktan erişim için kritiktir.

Windows Güvenlik Duvarı SSH Kuralı: Port 22 İzni Verme

Servis çalışsa bile Windows güvenlik duvarı bağlantıları engelleyebilir. Neyse ki OpenSSH kurulumu, OpenSSH-Server-In-TCP adında bir gelen kuralı otomatik oluşturur.

Kuralın mevcut olup olmadığını şu komutla kontrol edin:

Adım 1

Get-NetFirewallRule -Name *OpenSSH* | Format-Table Name, Enabled, Direction, Action

Adım 2

Eğer kural yoksa veya devre dışıysa manuel olarak ekleyin:

New-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

Adım 3

Bu komut, TCP portu 22 üzerinden gelen tüm bağlantılara izin verir. Ancak güvenlik açısından kaynak IP adresini kısıtlamanızı öneririm. Örneğin sadece yönetim ağından gelen bağlantılara izin verebilirsiniz:

New-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -RemoteAddress 192.168.1.0/24

Burada -RemoteAddress parametresi kritik önem taşır. Üretim ortamlarında SSH portunu tüm internete açmak son derece risklidir. Saldırganlar saniyede binlerce kez port 22’ye bağlanmayı dener. Bu nedenle kaynak IP kısıtlaması şarttır.

Ayrıca Windows güvenlik duvarının gelişmiş ayarlarını kullanarak kuralı belirli kullanıcı gruplarına da bağlayabilirsiniz. Örneğin sadece yönetici kullanıcı grubu üyeleri SSH bağlantısı kurabilsin.

ÖNEMLİ
Güvenlik duvarı kuralını test etmeden önce Test-NetConnection -ComputerName localhost -Port 22 komutunu çalıştırın. Yerel bağlantı başarılıysa sorun güvenlik duvarında değil, ağ yapılandırmasındadır.

NOT: Bağlantı sorunlarını teşhis etmek için ping komutunu kullanmalısınız. Farklı parametrelerle detaylı testler yapabilirsiniz. Ağ sorunlarını çözmek için ping parametreleri rehberini faydalı bulabilirsiniz.

Bağlantı Testi: ssh -V ve netstat -ano ile Doğrulama

Servis ve güvenlik duvarı hazır olduğuna göre bağlantıyı test edebiliriz. İlk olarak OpenSSH sürümünü kontrol edelim:

Adım 1

ssh -V

Adım 2

Bu komut size OpenSSH_for_Windows_10.4 gibi bir çıktı verir. Sürüm numarası, hangi güvenlik özelliklerinin mevcut olduğunu anlamanız için önemlidir. 2026 itibarıyla güncel sürüm 10.4’tür.

Ardından servisin gerçekten bağlantı noktası 22 üzerinde dinleme yapıp yapmadığını kontrol edelim:

Adım 3

netstat -ano | findstr :22

Adım 4

Bu komut, 22 numaralı portu dinleyen süreci gösterir. LISTENING durumunda bir satır görmelisiniz. Eğer göremiyorsanız servis çalışmıyor veya farklı bir port kullanıyor olabilir.

Şimdi uzak bir makineden bağlantı testi yapalım:

Adım 5

ssh kullanici@sunucu-ip-adresi

Adım 6

İlk bağlantıda size sunucunun host key fingerprint‘ini gösterir ve onay ister. yes yazıp Enter’a basın. Ardından kullanıcı parolasını girmenizi isteyecektir.

Eğer bağlantı reddedilirse ssh -vvv kullanici@sunucu-ip komutuyla ayrıntılı günlük kaydı alabilirsiniz. Bu çıktı, sorunun hangi aşamada oluştuğunu net şekilde gösterir. Kimlik doğrulama mı, ağ bağlantısı mı, yoksa anahtar sorunu mu olduğunu anlarsınız.

Ben her yeni kurulumda mutlaka ssh -vvv testi yaparım. Çünkü bu komut, yapılandırma hatalarının çoğunu daha bağlantı kurulmadan ortaya çıkarır.

Windows 11’de SSH Anahtar Kimlik Doğrulama: ssh-keygen, authorized_keys ve icacls İzin Yönetimi

Parola ile SSH bağlantısı çalışır ancak güvenli değildir. Brute-force saldırılarına karşı savunmasızdır. İşte bu yüzden anahtar tabanlı kimlik doğrulama kullanmalısınız.

Bu yöntemde bir anahtar çifti oluşturma işlemi yaparsınız: Özel anahtar (private key) sizde kalır. Buna ek olarak genel anahtarı (public key) sunucuya yerleştirirsiniz. Sunucu, özel anahtarınızın matematiksel eşini görürse sizi içeri alır.

Bu bölümde ssh-keygen ile anahtar üretmeyi, authorized_keys dosyasını yapılandırmayı ve icacls ile dosya izinlerini düzeltmeyi öğreneceksiniz.

ssh-keygen ile ED25519 Anahtar Çifti Oluşturma

Anahtar üretmek için ssh-keygen komutunu kullanacağız. Ben her zaman ED25519 algoritmasını tercih ediyorum. Çünkü RSA’dan daha kısa, daha hızlı ve daha güvenlidir.

İstemci makinenizde PowerShell açın ve şu komutu çalıştırın:

Adım 1

ssh-keygen -t ed25519 -C "windows-ssh-2026"

Adım 2

Bu komut size üç soru soracak. İlk soru dosya konumudur. Varsayılan olarak C:\Users\kullanici\.ssh\id_ed25519 önerilir. Enter’a basıp geçin.

Adım 3

İkinci soru parola (passphrase) içindir. Boş bırakabilirsiniz ancak güvenlik için bir parola girmenizi öneririm. Bu parola, özel anahtarınızı şifreler.

Adım 4

Üçüncü soruda aynı parolayı tekrar girin. İşlem tamamlandığında iki dosya oluşur: id_ed25519 (özel anahtar) ve id_ed25519.pub (genel anahtar).

Genel anahtarın içeriğini görüntülemek için:

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

Bu çıktıyı kopyalayıp sunucuya taşıyacağız. Ama önce sunucu tarafındaki yapılandırmayı görelim.

Eğer RSA anahtarı kullanmanız gerekiyorsa (eski sistemlerle uyumluluk için) ssh-keygen -t rsa -b 4096 komutunu kullanabilirsiniz.

Ancak 2026 itibarıyla ssh-rsa algoritması varsayılan olarak devre dışıdır. Bu konuyu hata çözümü bölümünde detaylıca ele alacağım.

KRİTİK
Özel anahtarınızı asla kimseyle paylaşmayın. id_ed25519 dosyası sizin kimliğinizdir. Bu dosyayı e-posta ile gönderirseniz veya USB bellekte taşırsanız büyük bir güvenlik ihlali yaparsınız. Dahası dosyayı bulut depolamaya yüklemeniz de ciddi bir güvenlik açığı oluşturur. Sadece .pub uzantılı genel anahtarı paylaşın.

authorized_keys ve administrators_authorized_keys Yapılandırması

Sunucu tarafında iki farklı yetkilendirme dosyası bulunur. Normal kullanıcılar için authorized_keys, yönetici kullanıcılar için administrators_authorized_keys kullanılır.

Normal kullanıcılar için dosya yolu şöyledir:

C:\Users\kullanici\.ssh\authorized_keys

Yönetici kullanıcılar için dosya yolu ise şudur:

C:\ProgramData\ssh\administrators_authorized_keys

Ben genellikle her iki dosyayı da oluşturuyorum. Çünkü bazen bir kullanıcı hem normal hem yönetici yetkisiyle bağlanmak isteyebilir. Ayrıca sshd_config dosyasındaki Match bloğu ile bu davranışı özelleştirebilirsiniz.

Genel anahtarınızı dosyaya eklemek için şu komutu kullanın:

Adım 1

Add-Content -Path "C:\ProgramData\ssh\administrators_authorized_keys" -Value (Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub)

Adım 2

Bu komut, istemci makinenizdeki genel anahtarı sunucudaki yetkilendirme dosyasına ekler. Eğer uzak bir makineden bağlanıyorsanız önce genel anahtarı sunucuya kopyalamanız gerekir. Bunun için scp kullanabilirsiniz:

scp $env:USERPROFILE\.ssh\id_ed25519.pub kullanici@sunucu:C:\Users\kullanici\.ssh\authorized_keys

Adım 3

Ancak bu yöntem dosya izinlerini otomatik ayarlamaz. Bu yüzden bir sonraki adımda icacls ile izinleri düzelteceğiz.

Not
Windows’ta authorized_keys dosyası UTF-8 kodlamasında olmalıdır.Notepad ile oluşturduğunuz dosyaları sistem bazen UTF-16 formatında kaydeder. Bu durumda SSH sunucusu anahtarı okuyamaz. Dosyayı Set-Content -Encoding UTF8 ile oluşturduğunuzdan emin olun.

icacls ile Yetki Kalıtımı Kırma ve Doğru ACL Ayarları

Windows’ta dosya izinleri, SSH’ın en çok takıldığı noktadır. Linux’ta chmod 600 tek komutla çözülürken Windows’ta erişim kontrol listesi (ACL) yönetimi gerekir.

OpenSSH, authorized_keys dosyasının sadece sahibi ve SYSTEM tarafından yazılabilir olmasını ister. Aksi halde Permission denied (publickey) hatası verir.

İzinleri düzeltmek için önce kalıtımı kırmalıyız. Çünkü varsayılan olarak dosya, üst klasörden izinleri devralır:

Adım 1

icacls "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r

Adım 2

Ardından sadece Administrators ve SYSTEM gruplarına tam yetki verelim:

icacls "C:\ProgramData\ssh\administrators_authorized_keys" /grant "Administrators:F" /grant "SYSTEM:F"

Adım 3

Bu iki komut, dosyayı SSH’ın beklediği formata getirir. Benzer işlemi normal kullanıcı dosyası için de yapmalısınız:

icacls "C:\Users\kullanici\.ssh\authorized_keys" /inheritance:r /grant "kullanici:F" /grant "SYSTEM:F"

Adım 4

Şimdi servisi yeniden başlatın ve anahtar tabanlı bağlantıyı test edin:

Restart-Service sshd

Bağlantıda parola sorulmadan doğrudan oturum açılmalıdır. Eğer hala parola soruluyorsa ssh -vvv çıktısını inceleyin. Genellikle dosya izinleri veya sshd_config içindeki PubkeyAuthentication satırı sorunludur.

Ben bu izin ayarlarını bir PowerShell betiğine dönüştürdüm. Her yeni kullanıcı eklediğimde otomatik çalıştırıyorum. Bu sayede manuel hataları tamamen ortadan kaldırdım.

Kullanıcı Hesabı Oluşturma ve Yetkilendirme

Güvenlik açısından her istemci için ayrı bir kullanıcı oluşturun. Bu sayede erişim kontrolünü kolayca yönetirsiniz.

Adım 1

Computer Management (Bilgisayar Yönetimi) konsolunu açın. Local Users and Groups bölümüne gidin.

Bilgisayar Yönetimi

Adım 2

Users klasörüne sağ tıklayın. Ardından New User seçeneğini seçin.

Kullanıcıları Yapılandırma

Adım 3

Kullanıcı oluşturma penceresi açıldığında Yeni Kullanıcı seçeneğine tıklayın.

Yeni Kullanıcı

Adım 4

Kullanıcı adı, parola ve açıklama alanlarını doldurun. “Parola asla sona ermesin” seçeneğini işaretleyin.

Parola Asla Sona Ermesin

Adım 5

Create butonuna basıp kullanıcıyı oluşturun. Ardından Close ile pencereyi kapatın.

Kullanıcı Bir Sonraki Oturum Açısında Parola Değiştirsin

Adım 6

SSHUser kullanıcısını Administrator üyesi yapmak amacıyla çift tıklayın.

Kullanıcıyı Düzenleme

Adım 7

Üyelik sekmesine geçin. Ardından bir alttaki Ekle butonuna tıklayarak devam edin.

Kullanıcıyı Belirli Bir Gruba Ekleme

Adım 8

Grup seç penceresinde alttaki Gelişmiş butonuna tıklayın.

Grupları Yapılandırma

Adım 9

Daha sonra Bul butonuna tıklayarak işletim sistemi üzerinde grupları arayın.

Şimdi Bul

Adım 10

Administrator hesabını seçtikten sonra OK’ basın.

Administrator Grubunu Seçme

Adım 11

Son olarak tekrar OK’layın.

Ayarları Kapatma

Adım 12

Kullanıcıyı Administrator grubuna üye yaptıktan sonra OK’a basıp kaydedin.

SSHUser Üyelik Ayarlarını Kaydetme

DİKKAT
Kullanıcıyı doğrudan Administrators grubuna eklemek güvenlik riski taşır. Mümkünse ayrı bir SSH kullanıcı grubu oluşturun. Sonra sshd_config dosyasında AllowGroups direktifiyle bu gruba erişim verin.

sshd_config Windows Ayarları: Port Değiştirme, Güvenlik Sertleştirme ve İleri Düzey Yapılandırma

sshd_config dosyası, SSH sunucusunun beynidir. Bu dosyada yapacağınız her değişiklik, sunucunun davranışını doğrudan etkiler. Bu bölümde port değiştirmeyi, temel sertleştirmeyi ve post-kuantum kriptografi gibi ileri düzey konuları ele alacağız.

Windows’ta yapılandırma dosyası C:\ProgramData\ssh\sshd_config yolundadır. Bu dosyayı düzenlemeden önce mutlaka yedekleyin.

Ben her değişiklik öncesi şu komutu çalıştırıyorum:

Copy-Item "C:\ProgramData\ssh\sshd_config" "C:\ProgramData\ssh\sshd_config.bak"

Bu yedekleme alışkanlığı, birçok kez beni büyük sıkıntıdan kurtardı. Özellikle üretim sunucularında yapılandırma hatası, tüm erişimi kesebilir.

Windows’ta SSH Port Değiştirme (22’den 2222’ye) ve Güvenlik Duvarı Güncellemesi

Varsayılan bağlantı noktası 22’yi tüm dünya bilir. Bu yüzden saldırganların ilk hedefidir. Portu değiştirmek, güvenlik açısından önemli bir adımdır. Tabii ki tek başına yeterli değildir ama saldırı yüzeyini daraltır.

Adım 1

Port değiştirmek için sshd_config dosyasını açın ve Port 22 satırını bulun.

Adım 2

Bu satırı Port 2222 olarak değiştirin.

Port 2222

Adım 3

Ardından Windows güvenlik duvarı kuralını güncellemelisiniz. Eski kuralı devre dışı bırakıp yeni bir kural ekleyin:

New-NetFirewallRule -Name "OpenSSH-Server-In-TCP-2222" -DisplayName "OpenSSH Server (sshd) 2222" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 2222

Adım 4

Şimdi servisi yeniden başlatın:

Restart-Service sshd

Adım 5

Bağlantı testi için ssh kullanici@sunucu -p 2222 komutunu kullanmalısınız. -p parametresi, port numarasını belirtir. Unutmayın, artık 22 portu üzerinden bağlantı kuramazsınız.

Ben genellikle 22 portunu tamamen kapatıyorum. Sadece 2222 gibi yüksek bir port açık bırakıyorum. Ayrıca -RemoteAddress parametresiyle kaynak IP kısıtlaması da ekliyorum. Bu ikili kombinasyon, SSH sunucusunu büyük ölçüde görünmez kılıyor.

İpucu
Port değiştirdikten sonra mevcut SSH oturumunuzu kapatmayın. Yeni bir terminal açıp bağlantıyı test edin. Eğer yeni port çalışmazsa eski oturumdan müdahale ederek hatayı düzeltebilirsiniz. Aksi halde sunucudan tamamen kilitlenebilirsiniz.

Temel Sertleştirme: PermitRootLogin, MaxAuthTries ve GSSAPIAuthentication

SSH sunucusunu güvenli hale getirmek için birkaç temel ayarı mutlaka yapmalısınız. Bu ayarlar, saldırı yüzeyini minimuma indirir. Aşağıdaki tablo, benim her sunucuda uyguladığım standart sertleştirme ayarlarını gösteriyor:

AyarÖnerilen DeğerAçıklama
PermitRootLoginnoRoot kullanıcısının doğrudan girişini engeller
MaxAuthTries33 başarısız denemeden sonra bağlantıyı keser
PasswordAuthenticationnoParola ile girişi tamamen devre dışı bırakır
PubkeyAuthenticationyesSadece anahtar tabanlı girişe izin verir
PermitEmptyPasswordsnoBoş parolalı hesapları reddeder
GSSAPIAuthenticationnoGereksiz GSSAPI kimlik doğrulamasını kapatır
X11ForwardingnoX11 yönlendirmesini kapatır (Windows’ta gerekli değil)

Bu ayarları sshd_config dosyasının sonuna ekleyin. Ardından servisi yeniden başlatın. PasswordAuthentication no ayarını yapmadan önce anahtar tabanlı girişin çalıştığından emin olun. Aksi halde sunucuya erişiminizi tamamen kaybedebilirsiniz.

MaxAuthTries ayarı özellikle önemlidir. Varsayılan değer 6’dır. Bunu 3’e düşürmek, brute-force saldırılarını yavaşlatır. Saldırgan 3 denemede başarısız olursa bağlantı kesilir ve yeniden bağlanması gerekir.

GSSAPIAuthentication no ayarı, Windows’ta genellikle gereksizdir. Kerberos tabanlı kimlik doğrulama kullanmıyorsanız bu ayarı kapatmak, her bağlantıda gereksiz gecikmeyi önler.

Uyarı
PasswordAuthentication no ayarını yapmadan önce mutlaka ssh -i ozel_anahtar kullanici@sunucu komutuyla anahtarla giriş yapabildiğinizi doğrulayın. Aksi halde sunucudan tamamen kilitlenirsiniz ve fiziksel erişim gerekir.

İleri Düzey: Post-Kuantum Kriptografi ve ssh-rsa Algoritma Uyumluluğu

Kuantum bilgisayarlar, mevcut şifreleme algoritmalarını kırma potansiyeline sahip. Bu yüzden post-kuantum kriptografi çalışmaları hız kazandı. OpenSSH da bu alanda önemli adımlar atıyor.

2026 Temmuz ayında yayınlanan OpenSSH 10.4, deneysel düzeyde post-kuantum imza desteği getirdi. Bu sürüm, ML-DSA 44 ve Ed25519 birleşiminden oluşan kompozit bir imza şeması sunuyor.

Post-kuantum algoritmaları test etmek için sshd_config dosyasına şu satırları ekleyebilirsiniz:

HostKeyAlgorithms mlkem768x25519-sha256,ssh-ed25519
KexAlgorithms sntrup761x25519-sha512@openssh.com,mlkem768x25519-sha256

Ancak bu algoritmalar deneysel aşamadadır. Üretim ortamlarında kullanmadan önce kapsamlı testler yapmalısınız. Ben henüz canlı sistemlerde bu algoritmaları etkinleştirmedim. Ancak laboratuvar ortamında test ediyorum.

Eski sistemlerle uyumluluk için ssh-rsa algoritmasına ihtiyaç duyabilirsiniz. OpenSSH 8.8 ve sonrası bu algoritmayı varsayılan olarak devre dışı bırakır. Yeniden etkinleştirmek için sshd_config dosyasına şu satırları ekleyin:

PubkeyAcceptedAlgorithms +ssh-rsa
HostKeyAlgorithms +ssh-rsa

Bu satırlar, ssh-rsa algoritmasını eski istemciler için tekrar açar. Ancak güvenlik açısından bu algoritmayı yalnızca zorunlu olduğunda kullanın. Mümkün olan en kısa sürede ED25519’e geçiş yapın.

Ben yıllardır ED25519 kullanıyorum. Hem daha hızlı hem de daha güvenli. Eski bir sistemle çalışmak zorunda kalmadıkça ssh-rsa için geriye dönük uyumluluk eklemiyorum.

Windows SSH Tünel Oluşturma: -L, -R ve SOCKS Proxy ile Gerçek Dünya Senaryoları

SSH tünelleme, en güçlü özelliklerden biridir. Bu sayede güvenli olmayan ağlarda bile şifreli kanallar kurabilirsiniz. Bu bölümde üç tünel türünü gerçek senaryolarla anlatacağım.

Ben tünellemeyi özellikle veritabanı yönetimi ve uzak masaüstü erişimi için kullanıyorum. Çünkü doğrudan internet’e açık veritabanı sunucuları büyük risk taşır. SSH tüneli, bu riski ortadan kaldırır.

Yerel Port Yönlendirme (-L): Uzak Masaüstü ve Veritabanı Tüneli

Yerel port yönlendirme, kendi makinenizdeki bir portu uzak sunucudaki bir porta bağlar. -L parametresi ile kullanılır. Ben bunu en çok veritabanı tünelleri için kullanıyorum.

Diyelim ki uzak sunucuda çalışan bir MySQL veritabanına erişmek istiyorsunuz. Ancak veritabanı portu dış dünyaya kapalı. Şu komutla güvenli bir tünel açabilirsiniz:

ssh -L 3306:localhost:3306 kullanici@uzak-sunucu

Bu komut, kendi makinenizdeki 3306 portunu uzak sunucudaki 3306 portuna bağlar. Artık localhost:3306 adresine bağlanan her istemci, aslında uzak sunucudaki veritabanına erişir.

Benzer şekilde uzak masaüstü SSH tüneli için şu komutu kullanabilirsiniz:

ssh -L 13389:localhost:3389 kullanici@uzak-sunucu

Ardından RDP istemcinizde localhost:13389 adresine bağlanırsınız. Bu yöntem, RDP portunu internete açmadan güvenli uzak masaüstü erişimi sağlar.

Ben bu yöntemi özellikle müşteri sunucularına bağlanırken kullanıyorum. Çünkü RDP’yi doğrudan açmak yerine SSH tüneli üzerinden geçiriyorum. Bu sayede tüm trafik şifreli kalıyor.

Uzak Port Yönlendirme (-R) ve Dinamik SOCKS Proxy (-D)

Uzak port yönlendirme, yerel makinenizdeki bir servisi uzak sunucuya açar. -R parametresi ile kullanılır. Geliştiriciler bu işlemi genellikle ters SSH tüneli olarak adlandırır.

Örneğin evinizdeki bir web sunucusunu dış dünyaya açmak istiyorsunuz. Ancak modemde port yönlendirme yapamıyorsunuz. Şu komutla ters tünel kurabilirsiniz:

ssh -R 8080:localhost:80 kullanici@uzak-sunucu

Bu komut, uzak sunucudaki 8080 portunu sizin makinenizdeki 80 portuna bağlar. Artık uzak sunucunun IP adresine 8080 portundan bağlanan herkes, sizin ev sunucunuza erişir.

Dinamik port yönlendirme ise -D parametresi ile yapılır. Bu, bir SOCKS vekil sunucusu oluşturur. Tüm tarayıcı trafiğinizi SSH üzerinden geçirmek için idealdir:

ssh -D 1080 kullanici@uzak-sunucu

Ardından tarayıcınızın proxy ayarlarında SOCKS5 proxy olarak localhost:1080 adresini tanımlarsınız. Tüm internet trafiğiniz uzak sunucu üzerinden şifreli olarak akar.

Ben bu yöntemi halka açık Wi-Fi ağlarında kullanıyorum. Özellikle havaalanlarında veya otellerde, tüm trafiğimi kendi sunucum üzerinden geçiriyorum. Bu sayede yerel ağdaki kötü niyetli kişiler verilerimi okuyamıyor.

DENEYİM
Bir veritabanı yöneticisi olarak, müşterilerimin veritabanlarına doğrudan internet erişimi vermiyorum. Bunun yerine SSH tüneli kuruyorum. ssh -L 5432:localhost:5432 kullanici@db-sunucu komutuyla PostgreSQL’e bağlanıyorum. Bu yöntem hem güvenli hem de denetlenebilir.

Windows’ta SFTP Sunucusu Kurma ve ChrootDirectory ile Kullanıcı Kısıtlama

SFTP, SSH üzerinden güvenli dosya transferi sağlar. FTP’nin aksine tüm trafik şifrelidir. Windows’ta OpenSSH kurduğunuzda SFTP alt sistemi otomatik olarak gelir.

Ancak SFTP’yi güvenli hale getirmek için kullanıcıları belirli bir dizine hapsetmeniz gerekir. Bu işleme chroot hapishanesi denir. Şimdi, SFTP yapılandırmasını ve chroot ayarını göstereceğim.

SSH ile dosya transferi için SFTP kullanıyorsunuz. Bazı senaryolarda TFTP gibi basit protokoller de işe yarıyor. Şunu da eklemeden geçmeyeyim, ağ cihazlarının yapılandırmasında TFTP yaygın. Windows’ta TFTP sunucusu kurulumu da oldukça kolaydır.

Subsystem sftp Yapılandırması ve sftp-server.exe Yolu

SFTP alt sisteminin çalışması için sshd_config dosyasında şu satırın bulunması gerekir:

Subsystem sftp sftp-server.exe

Bu satır, SSH sunucusuna SFTP isteklerini sftp-server.exe programına yönlendirmesini söyler. Windows’ta bu dosya C:\Windows\System32\OpenSSH\ altındadır.

Eğer satır eksikse veya yorumlanmışsa SFTP bağlantıları başarısız olur. Ben her kurulumda bu satırı kontrol ediyorum. Çünkü bazen yapılandırma dosyası güncellemelerinde bu satır kaybolabiliyor.

SFTP günlüklemesini etkinleştirmek için şu satırları ekleyebilirsiniz:

SyslogFacility LOCAL0
LogLevel DEBUG3

Bu ayarlar, SFTP oturumlarındaki tüm işlemleri günlüğe kaydeder. Günlük dosyaları C:\ProgramData\ssh\logs altında oluşur. Hata ayıklama sırasında bu günlükler paha biçilmezdir.

SFTP bağlantısını test etmek için sftp kullanici@sunucu komutunu kullanabilirsiniz. Başarılı bağlantıda sftp> istemi görürsünüz. ls, put, get gibi komutlarla dosya işlemleri yapabilirsiniz.

ChrootDirectory ve Match Bloğu ile Kullanıcı İzolasyonu

Varsayılan olarak SFTP kullanıcıları tüm dosya sistemine erişebilir. Bu büyük bir güvenlik riskidir. Kullanıcıları belirli bir klasöre hapsetmek için ChrootDirectory direktifini kullanmalısınız.

Adım 1

Önce SFTP için ayrı bir kullanıcı grubu oluşturun. Ardından sshd_config dosyasının sonuna bir Match bloğu ekleyin:

Match Group sftp-users
    ChrootDirectory C:\SFTP\%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    PermitTunnel no

Adım 2

Bu yapılandırma, sftp-users grubundaki tüm kullanıcıları kendi ev dizinlerine hapseder. %u değişkeni, kullanıcı adını temsil eder. Yani ahmet kullanıcısı C:\SFTP\ahmet dizinine hapsolur.

Adım 3

Ancak Windows’ta chroot uygulamak Linux’taki kadar basit değildir. Çünkü NTFS izinleri ile OpenSSH’ın chroot mekanizması arasında karmaşık bir etkileşim vardır. Chroot dizininin sahibi SYSTEM olmalı ve kullanıcıların yazma izni olmamalıdır.

İşte doğru izin yapılandırması:

icacls "C:\SFTP\ahmet" /inheritance:r /grant "SYSTEM:F" /grant "Administrators:F"

Adım 4

Kullanıcının dosya yükleyebilmesi için ayrı bir alt klasör oluşturun ve oraya yazma izni verin:

mkdir "C:\SFTP\ahmet\upload"
icacls "C:\SFTP\ahmet\upload" /grant "ahmet:M"

Adım 5

Bu yapılandırma, kullanıcının sadece upload klasörüne dosya yüklemesine izin verir. Chroot dizininin kendisine yazamaz. Bu, kullanıcı izolasyonu için kritik bir adımdır.

Ben her SFTP kullanıcısı için bu yapıyı otomatik oluşturan bir PowerShell betiği yazdım. Betik, kullanıcıyı oluşturur, gruba ekler, dizinleri yapılandırır ve izinleri ayarlar. Bu sayede yüzlerce kullanıcıyı saniyeler içinde hazırlayabiliyorum.

Test Sonucu
Chroot yapılandırmasını test etmek için sftp bağlantısı kurup cd .. komutunu çalıştırın. “Couldn’t canonicalize: No such file or directory” hatası alırsanız chroot çalışıyor demektir. Kullanıcı üst dizinlere çıkamaz.

Windows 11’de OpenSSH Hata Çözümü: 0x800F0954 ve Bağlantı Reddedildi Senaryoları

Her kurulum sorunsuz gitmez. Özellikle kurumsal ortamlarda Windows OpenSSH hata çözümü bilgisi hayat kurtarır. Bu hatalarla onlarca kez karşılaştım. Çözümlerini ezbere biliyorum. Siz de bu bölümü okuduktan sonra aynı rahatlığa kavuşacaksınız.

0x800F0954 ve 0x800F0950: WSUS ve Grup İlkesi Kaynaklı Kurulum Hataları

Add-WindowsCapability komutu bazen 0x800F0954 hatası verir. Bu hata, Windows’un isteğe bağlı özellik paketini bulamadığı anlamına gelir. Genellikle WSUS veya grup ilkesi kaynaklıdır.

Sorunun kökeni şudur: WSUS, isteğe bağlı özellikler için gerekli .cab dosyalarını sunuculara dağıtmaz. Bu nedenle Windows, OpenSSH paketini indiremez. Aynı sorun 0x800F0950 ve 0x8024402C hatalarında da görülür.

Çözüm için şu adımları izleyin:

Adım 1

Kayıt defteri düzenleyicisini açın. Ardından şu anahtara gidin: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU

Adım 2

UseWUServer DWORD değerini bulun. Değeri 1 ise 0 yapın.

Adım 3

Windows Update servisini yeniden başlatın: Restart-Service wuauserv

Adım 4

Şimdi Add-WindowsCapability komutunu tekrar çalıştırın.

Bu yöntem, WSUS’un devre dışı bırakılmasını gerektirir. Ancak geçici olarak yapmanız yeterlidir. Kurulum tamamlandıktan sonra UseWUServer değerini tekrar 1 yapabilirsiniz.

Alternatif olarak, OpenSSH’ı manuel ZIP paketiyle kurabilirsiniz. Bu yöntem, WSUS’a hiç dokunmadan sorunu çözer. Özellikle hava boşluklu ağlarda tek seçenek budur.

ÖNEMLİ
WSUS yöneticisiyseniz, OpenSSH özellik paketini WSUS sunucunuza manuel olarak ekleyebilirsiniz. Microsoft, bu paketleri “Features on Demand” olarak ayrıca yayınlar. Bu sayede istemciler WSUS üzerinden de kurabilir.

Permission denied (publickey) ve ssh-rsa Algoritma Uyumsuzluğu Çözümü

Permission denied (publickey) hatası, SSH kullanıcılarının kâbusudur. Bu hata, anahtar tabanlı girişin reddedildiği anlamına gelir. Birden fazla nedeni olabilir.

Adım 1

İlk kontrol etmeniz gereken şey dosya izinleridir. authorized_keys dosyası sadece sahibi ve SYSTEM tarafından yazılabilir olmalıdır. İzinleri düzeltmek için icacls komutunu kullanın:

icacls "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"

Adım 2

İkinci olası neden ssh-rsa algoritmasının devre dışı olmasıdır. OpenSSH 8.8’den itibaren bu algoritma varsayılan olarak kapalıdır. Eğer eski bir istemci kullanıyorsanız bağlantı başarısız olur.

Çözüm için sshd_config dosyasına şu satırları ekleyin:

PubkeyAcceptedAlgorithms +ssh-rsa
HostKeyAlgorithms +ssh-rsa

Adım 3

Ardından servisi yeniden başlatın. Bu değişiklik, ssh-rsa algoritmasını tekrar etkinleştirir. Ancak güvenlik açısından bu algoritmayı yalnızca zorunlu olduğunda kullanın.

Adım 4

Üçüncü olası neden, sshd_config dosyasındaki PubkeyAuthentication satırının no olmasıdır. Bu satırı yes yapın. Ayrıca AuthorizedKeysFile satırının doğru yolu gösterdiğinden emin olun.

Ben bu üç kontrolü her Permission denied hatasında sırayla yapıyorum. Vakaların %90’ında sorun bu üç nedenden biridir. Kalan %10 ise genellikle anahtar dosyasının bozuk olması veya yanlış kullanıcıya ait olmasıdır.

Son olarak ssh -vvv çıktısını mutlaka inceleyin. Bu çıktı, tam olarak hangi aşamada takıldığınızı gösterir.

Örneğin “Offering public key” satırından sonra hata alıyorsanız sorun sunucu tarafındadır. “Authentications that can continue” satırından sonra hata alıyorsanız istemci tarafında sorun var demektir.

Windows SSH Sunucu Güvenlik Ayarları ve Uyumluluk Denetimi

SSH sunucusunu kurmak yeterli değil. Onu güvenli tutmak için sürekli denetlemeniz gerekir. Ben her üretim sunucusunda bu ayarları uyguluyorum. Ayrıca aylık güvenlik denetimi yapıyorum. Bu sayede olası açıkları erken tespit ediyorum.

AllowUsers, DenyUsers ve Match Bloğu ile Erişim Kontrolü

SSH sunucusuna kimin bağlanabileceğini kontrol etmek kritik önem taşır. Varsayılan olarak tüm yerel kullanıcılar bağlanabilir. Bu genellikle istenmeyen bir durumdur.

AllowUsers direktifi ile sadece belirli kullanıcılara izin verebilirsiniz:

AllowUsers admin yedekleme

Bu ayar, sadece admin ve yedekleme kullanıcılarının SSH bağlantısı kurmasına izin verir. Sistem, diğer tüm kullanıcıları reddeder.

DenyUsers direktifi ise belirli kullanıcıları engeller. Genellikle Administrator gibi yerleşik hesapları engellemek için kullanılır:

DenyUsers Administrator Guest

Match bloğu ile daha granüler kontrol yapabilirsiniz. Örneğin belirli bir kullanıcı grubuna farklı ayarlar uygulayabilirsiniz:

Match Group sftp-users
    ChrootDirectory C:\SFTP\%u
    ForceCommand internal-sftp
    PermitTunnel no

Bu yapılandırma, sftp-users grubundaki kullanıcıların sadece SFTP kullanmasına izin verir. SSH kabuk erişimini tamamen kapatır.

Ben her sunucuda en az bir Match bloğu kullanıyorum. Çünkü farklı kullanıcı gruplarının farklı ihtiyaçları oluyor. Yöneticiler tam erişim alırken, otomasyon hesapları sadece belirli komutları çalıştırabiliyor.

DİKKAT
AllowUsers veya DenyUsers ayarlarını yaparken kendi kullanıcı adınızı eklemeyi unutmayın. Aksi halde sunucudan tamamen kilitlenirsiniz. Değişikliği yaptıktan sonra mevcut oturumunuzu kapatmadan yeni bir bağlantı testi yapın.

Event Viewer ve SSH Posture Control ile Denetim

SSH olaylarını izlemek, güvenlik ihlallerini erken tespit etmenin en iyi yoludur. Windows’ta OpenSSH, olayları Event Viewer üzerinden kaydeder.

Olay günlüğü konumu şöyledir: Applications and Services Logs > OpenSSH > Operational. Sistem bu günlükte bağlantı denemelerini, kimlik doğrulama başarılarını ve hataları tutar.

Ben düzenli olarak bu günlüğü inceliyorum. Özellikle başarısız bağlantı denemeleri, olası bir saldırının habercisi olabilir. Event Viewer’da Event ID 4 başarısız kimlik doğrulamayı, Event ID 2 ise başarılı bağlantıyı gösterir.

Ayrıca Windows Server 2025, SSH Posture Control adında yeni bir özellik getiriyor. Bu özellik, Azure Policy ve PowerShell kombinasyonuyla SSH yapılandırmasını denetler, uygular ve düzeltir.

SSH Posture Control’ün sağladığı denetimler şunlardır:

  • SSH servisinin çalışıp çalışmadığını kontrol eder
  • Zayıf kriptografi algoritmalarını tespit eder
  • Güvenlik duvarı kurallarını doğrular
  • Yetkisiz yapılandırma değişikliklerini raporlar
  • Uyumluluk taraması sonuçlarını Azure’a gönderir

Bu özellik, özellikle büyük ölçekli Windows sunucu filoları yönetenler için büyük kolaylık sağlıyor. Ben henüz tüm sunucularımda etkinleştirmedim. Ancak pilot testlerde çok olumlu sonuçlar aldım.

Windows 10 ve 11’de SSH Araçları: Windows Terminal, PowerShell, WinSCP ve VS Code

SSH sunucusu kurulduktan sonra onu kullanacak araçlara ihtiyacınız var. Windows ekosisteminde birçok seçenek mevcut. Bu bölümde en çok kullandığım araçları tanıtacağım.

Bu araçlar, günlük iş akışınızı hızlandırır. Özellikle Windows Terminal ve VS Code, modern geliştirici deneyiminin vazgeçilmez parçalarıdır.

Windows Terminal ve PowerShell ile SSH Bağlantısı

Windows Terminal, Microsoft’un modern terminal emülatörüdür. Sekmeli yapısı, özelleştirilebilir temaları ve hızlı render motoruyla öne çıkar.

Windows Terminal’den SSH bağlantısı kurmak için yeni bir sekme açıp şu komutu yazmanız yeterlidir:

ssh kullanici@sunucu-ip

Ben Windows Terminal’de sık kullandığım sunucular için profil oluşturuyorum. Böylece tek tıkla bağlantı kurabiliyorum. Profil oluşturmak için settings.json dosyasına şu bloğu ekleyin:

{
    "name": "Üretim Sunucusu",
    "commandline": "ssh kullanici@10.0.1.50",
    "icon": "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png",
    "hidden": false
}

PowerShell üzerinden SSH bağlantısı da aynı derecede kolaydır. Hatta PowerShell 7.7 ile birlikte SSH üzerinden uzak PowerShell oturumu açabilirsiniz. PowerShell Remoting over SSH özelliği, WinRM’e alternatif olarak giderek popülerleşiyor.

Bu özelliği kullanmak için istemci ve sunucu tarafında birkaç yapılandırma gerekir. İlk olarak sunucuda sshd_config dosyasına şu satırı ekleyin:

Subsystem powershell pwsh.exe -sshs -NoLogo

Ardından istemcide New-PSSession -HostName sunucu -UserName kullanici komutuyla uzak oturum açabilirsiniz. Bu yöntem, özellikle bulut ortamlarında WinRM portunu açmak istemeyenler için idealdir.

Ben CI/CD pipeline’larımda PowerShell Remoting over SSH kullanıyorum. Çünkü WinRM’e göre daha hafif ve güvenli. Ayrıca Linux tabanlı build ajanlarından da sorunsuz çalışıyor.

PuTTY ile Windows SSH Sunucuya Bağlanma

PuTTY, Windows dünyasının en klasik SSH istemcisidir. Hafif yapısı ve zengin özellikleriyle hâlâ popülerliğini koruyor.

PuTTY dışında SecureCRT gibi alternatif SSH istemcileri de var. Kurumsal ekipler bu aracı güvenlik nedeniyle sık kullanıyor. Gelişmiş oturum yönetimi ve güçlü şifreleme desteği sunuyor.

Adım 1

Öncelikle putty.exe dosyasına çift tıklayarak programı açın. Kurulum gerektirmez, taşınabilir bir araçtır.

Putty.exe

Adım 2

Putty programını açtıktan sonra VM’nin (OpenSSH Server) IP adresini yazarak OK’layın.

PuTTY Yapılandırma

Adım 3

OpenSSH Server’a bağlantıyı sağladığınızı aşağıdaki görüntüden inceleyebilirsiniz.

Sunucuya Bağlanma

Adım 4

Sanal makinede oluşturduğunuz SSHUser kullanıcı adını yazın.

Kullanıcı Adını Yazma

Adım 5

SSHUser’ın parolasını yazın ve Enter tuşuna basın.

Server Bağlantısı Yapıldı

Adım 6

SSH Server’a Putty kullanarak başarıyla bağlantı kurdunuz!

Dizini İnceleme

Adım 7

Sunucunun bilgisayar adını öğrenmek için “hostname” komutunu uygulayın.

Hostname

Adım 8

Ayrıca OpenSSH Server üzerinden Hostname değerini kontrol edebilirsiniz.

Windows Bilgisayarım Özellikler

Adım 9

Sunucuda yeni bir klasör oluşturmak için “md KlasörAdı” komutunu çalıştırın.

md GAMES

Adım 10

Sanal makineye gidin. Ardından C: sürücüsünü kontrol ederek yeni klasör oluşturduğunuzu doğrulayın.

Klasör Oluşturma

TAVSİYE
PuTTY yerine Windows Terminal veya Windows’un yerleşik ssh.exe istemcisini de kullanabilirsiniz. Ancak PuTTY, kayıtlı oturumlar ve port yönlendirme profilleri gibi ek özellikler sunar.

VS Code Remote-SSH, WinSCP ve Git Entegrasyonu

Visual Studio Code, Remote-SSH eklentisiyle uzak sunuculardaki dosyaları doğrudan düzenlemenizi sağlar. Bu eklenti, SSH üzerinden bağlanıp uzak dosya sistemini yerel gibi gösterir.

Remote-SSH kullanmak için:

  1. VS Code’u açın ve Extensions sekmesinden Remote - SSH eklentisini kurun.
  2. F1 tuşuna basıp Remote-SSH: Connect to Host komutunu çalıştırın.
  3. Bağlanmak istediğiniz sunucunun adresini girin.
  4. VS Code, SSH bağlantısını kurar ve uzak dosya sistemini açar.

WinSCP ise güvenli dosya transferi için en popüler grafik arayüzdür. SFTP ve SCP protokollerini destekler. Ayrıca dosya senkronizasyonu ve betikleme özellikleri sunar.

WinSCP ile Windows SFTP sunucunuza bağlanmak için:

  1. WinSCP’yi açın ve New Session sekmesine geçin.
  2. Protokol olarak SFTP seçin.
  3. Sunucu adresini, port numarasını, kullanıcı adını ve anahtar dosyanızı belirtin.
  4. Login butonuna basın.

Git entegrasyonu için ise GitHub, GitLab ve Bitbucket gibi platformlar SSH anahtarlarını destekler. ssh-keygen ile oluşturduğunuz genel anahtarı GitHub hesabınıza ekleyerek parolasız git işlemleri yapabilirsiniz.

Ben günlük iş akışımda bu üç aracı birlikte kullanıyorum. VS Code ile kod yazıp WinSCP ile dosya transferi yapıyorum. Ayrıca Git ile sürüm kontrolü sağlıyorum. Hepsi aynı SSH anahtarı üzerinden çalışıyor.

SSH Bağlantısı Hakkında İleri Okuma Kaynakları

Bu rehberde anlattıklarımı derinleştirmek isterseniz aşağıdaki kaynaklara mutlaka göz atın. Bu kaynaklar, konunun resmi ve akademik düzeydeki en güvenilir referanslarıdır.

Windows’ta OpenSSH Server SSS

Windows Server 2025’te SSH varsayılan olarak kurulu mu?

Evet, Windows Server 2025 ile birlikte OpenSSH sunucu bileşeni artık kutudan çıktığı gibi geliyor. Önceki sürümlerde saatlerinizi harcayarak yaptığınız o manuel kurulum çilesi tamamen tarihe karıştı.
Ancak hemen sevinmeyin. Microsoft, güvenli varsayılan politikası gereği sshd servisini kurulu bırakıp durdurulmuş halde bekletiyor. Yani bağlantı kabul etmeye başlaması için sizin elinizle ateşlemeniz gerekiyor. Server Manager’ı açıp Local Server sekmesine gidin. Sağ taraftaki Remote SSH Access bağlantısına tıklayıp Enable SSH seçeneğini işaretlemeniz yeterli.
Tek bir tıkla servis ayağa kalkıyor ve güvenlik duvarı kuralı da otomatik olarak ekleniyor. Ayrıca yeni gelen OpenSSH Users grubu sayesinde hangi kullanıcıların bağlanacağını da buradan yönetebilirsiniz.

Windows’ta SSH portu nasıl değiştirilir?

Varsayılan 22 numaralı kapıyı değiştirmek aslında göründüğü kadar zor değil. Tek yapmanız gereken yapılandırma dosyasını açıp tek bir satırı düzenlemek. Ben genelde ilk iş olarak sshd_config dosyasının yedeğini alırım, siz de öyle yapın.
Herhangi bir metin düzenleyiciyle C:\ProgramData\ssh\sshd_config dosyasını yönetici olarak açın. İçeride Port 22 satırını bulun ve istediğiniz numarayla değiştirin. Örneğin Port 2222 yazabilirsiniz.
Değişikliği kaydettikten sonra servisi yeniden başlatmalısınız. Restart-Service sshd komutunu çalıştırdığınız anda yeni portunuz aktif hale gelir. Unutmayın, güvenlik duvarında da yeni porta izin vermeniz gerekebilir. Aksi halde bağlantı denemeleri sessizce başarısız olur.

Permission denied (publickey) hatası nasıl çözülür?

Bu hata, SSH dünyasının en sinir bozucu ama en öğretici mesajlarından biridir. Karşınıza çıktığında panik yapmayın, çünkü genellikle üç ana sebepten birinden kaynaklanıyor. İlk ve en yaygın sebep, authorized_keys dosyasının yanlış yerde olması veya yanlış izinlere sahip olmasıdır.
Windows’ta yönetici hesapları için anahtarların C:\ProgramData\ssh\administrators_authorized_keys dosyasında durması gerekir. Eğer dosya yoksa oluşturun ve açık anahtarınızı içine yapıştırın. Ardından izinleri mutlaka düzeltin, çünkü sadece Administrators grubunun yazma yetkisi olmalı.
İkinci büyük sebep ise OpenSSH 8.8 ve sonrasında ssh-rsa algoritmasının varsayılan olarak devre dışı bırakılmasıdır. Eski bir anahtar kullanıyorsanız bağlantı reddedilir. Çözüm için sshd_config dosyasının sonuna PubkeyAcceptedAlgorithms +ssh-rsa satırını ekleyip servisi yeniden başlatın.

0x800F0954 hatası WSUS ortamında nasıl çözülür?

WSUS kullanan kurumsal ağlarda bu hata tam bir baş belasıdır. Windows, OpenSSH bileşenini isteğe bağlı özellik olarak kurmaya çalışır ama gerekli .cab dosyalarını WSUS sunucusunda bulamaz. Sonuç olarak 0x800F0954 hatası ekranınıza yapışır.
En pratik çözüm, Windows Update’in doğrudan Microsoft sunucularından içerik indirmesine izin vermektir. Kayıt defterinden UseWUServer değerini 0 yaparak bu kısıtlamayı geçici olarak kaldırabilirsiniz.
Ancak benim sahada en çok işe yarayan yöntemim tamamen farklı. GitHub’dan Win32-OpenSSH MSI paketini indirip sessiz kurulum yapıyorum. Böylece WSUS’un kaprisleriyle hiç uğraşmadan sunucu filosuna tek seferde kurabiliyorum. Özellikle SCCM veya Intune kullanıyorsanız bu yöntem altın değerinde.

Windows’ta SSH anahtarı nasıl oluşturulur ve kullanılır?

Parola yerine kriptografik anahtar kullanmak, güvenliği bir üst seviyeye taşır. Windows’ta bu iş için ssh-keygen aracı hazır olarak geliyor. Bir PowerShell penceresi açın ve ssh-keygen -t ed25519 komutunu çalıştırın.
Sihirbaz size anahtar dosyasının nereye kaydedileceğini soracak. Varsayılan konumu kabul edebilirsiniz, genellikle C:\Users\KullaniciAdi\.ssh\ altına kaydedilir. Ardından bir parola belirlemenizi isteyecek. Bu parola anahtarınızı koruyan ekstra bir katmandır, boş geçmemenizi tavsiye ederim.
İşlem bittiğinde iki dosya oluşur: id_ed25519 özel anahtarınız ve id_ed25519.pub açık anahtarınız. Açık anahtarın içeriğini kopyalayıp sunucudaki yetkili anahtarlar dosyasına eklemeniz yeterli. Artık her bağlantınızda parola yazmadan güvenli giriş yapabilirsiniz.

Windows SSH sunucusu otomatik nasıl başlatılır?

Kurulumdan sonra sshd servisi varsayılan olarak el freni çekili halde bekler. Sunucu her yeniden başladığında sizin elle müdahale etmeniz sürdürülebilir bir yöntem değil. Neyse ki tek bir komutla bu işi kalıcı olarak çözebilirsiniz.
Yönetici yetkisiyle açtığınız PowerShell’de Set-Service -Name sshd -StartupType Automatic komutunu çalıştırın.
Bu komut, servisin önyükleme sırasında kendiliğinden ayağa kalkmasını sağlar. Ardından Start-Service sshd diyerek servisi hemen başlatabilirsiniz. Get-Service sshd ile durumu kontrol ettiğinizde karşınıza çıkan Running ibaresi, artık her şeyin yolunda olduğunun en net göstergesidir.

Windows’ta SFTP sunucusu nasıl kurulur?

Aslında ayrı bir SFTP sunucusu kurmanıza gerek yok. OpenSSH Server kurulumu, SFTP alt sistemini de beraberinde getiriyor. Yani SSH bağlantınız çalıştığı anda SFTP de otomatik olarak hazır hale geliyor.
Sunucu tarafında sftp-server.exe bileşeni System32\OpenSSH klasöründe bekliyor. İstemci tarafında ise sftp komutunu kullanarak dosya transferine hemen başlayabilirsiniz. Bağlantı kurmak için sftp kullanici@sunucuip adresi yazmanız yeterli.
Eğer SFTP oturumlarını kaydetmek istiyorsanız sshd_config dosyasına Subsystem satırını ekleyip günlüklemeyi açabilirsiniz. Ayrıca WinSCP gibi grafik arayüzlü bir istemci kullanarak sürükle-bırak yöntemiyle dosya transferi yapmanız da mümkün.

OpenSSH nasıl güncellenir?

Windows’un kutudan çıkardığı OpenSSH sürümü genellikle biraz eskidir. Örneğin 7.7p1 veya 8.1p1 gibi sürümlerle karşılaşabilirsiniz. En son güvenlik yamalarına ve algoritmalara erişmek için GitHub’daki Win32-OpenSSH sürümüne geçiş yapmanız şart.
Öncelikle mevcut yapılandırmanızı ve anahtarlarınızı yedekleyin. C:\ProgramData\ssh klasörünün tamamını güvenli bir yere kopyalayın, çünkü güncelleme sırasında servis geçici olarak duracaktır.
Ardından GitHub’dan en son MSI paketini indirip çalıştırın. Kurulum, mevcut yapılandırmanızı koruyarak ikili dosyaları güncelleyecektir. İşlem sonrasında servisi yeniden başlatın ve ssh -V komutuyla yeni sürümü doğrulayın.

Sonuç: Windows 10, 11 ve Server’da Güvenli ve Otomasyona Hazır SSH Altyapısı

İşte bu kadar. Windows’ta SSH Server kurulumu sürecini baştan sona ele aldık. Artık Windows 10, 11 ve Server 2022/2025 sistemlerinizde güvenli bir SSH altyapısı kurabilirsiniz.

Unutmayın: SSH sadece bir kurulum işlemi değildir. Sürekli bakım ve güvenlik güncellemesi gerektirir. Özellikle post-kuantum kriptografi gibi yeni gelişmeleri takip etmelisiniz.

Ben yıllardır Windows ortamlarında SSH kullanıyorum. RDP’ye kıyasla çok daha hafif, güvenli ve otomasyona uygun. Özellikle DevOps süreçlerinde SSH vazgeçilmezdir.

Siz de bu rehberdeki adımları takip ederek kendi güvenli SSH altyapınızı kurabilirsiniz. Herhangi bir adımda takılırsanız ssh -vvv çıktısını incelemekten çekinmeyin. Bu çıktı, sorunun kaynağını gösterecektir.

Şimdi sıra sizde. Kendi sunucunuzda SSH Server kurulumu yapın ve güvenli uzaktan yönetimin keyfini çıkarın. Kolay gelsin!

Bu Rehberi Keşfettikleri İçin Sana Teşekkür Edecekler!

Sadece bir tıkla sevdiklerine dev bir iyilik yapmaya hazır mısın? Bilgi paylaştıkça devleşir.

İlk yorumu sen paylaş