Windows'ta OpenSSH tabanlı bir SFTP sunucusunun kurulumu, test edilmesi ve kaldırılması | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

Windows'ta OpenSSH tabanlı bir SFTP sunucusunun kurulumu, test edilmesi ve kaldırılması

Bu kılavuz, OpenSSH Sunucusu’nu yerleşik isteğe bağlı bir özellik olarak içeren Windows Server 2019, 2022 ve 2025 sürümleri için geçerlidir. Üçüncü taraf bir indirme gerekmez.

Adım adım kılavuz

OpenSSH Sunucu özelliğini yükleme

1. PowerShell'i Yönetici olarak başlatın: Başlat'a tıklayın, "PowerShell" yazın → "PowerShell" üzerine sağ tıklayın → Yönetici olarak çalıştır'ı seçin.

2. OpenSSH Sunucusu özelliğinin zaten kurulu olup olmadığını kontrol edin:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*' | Select-Object Name, State

Checking whether the OpenSSH Server feature is installed

Tip

Bu listede hem OpenSSH.Client hem de OpenSSH.Server yer alır . Özellikle OpenSSH.Server'ın durumunu kontrol ettiğinizden emin olun; istemci bileşeni zaten yüklü olabilir ve bu kılavuzda ele alınmamaktadır.

OpenSSH.Server'ın Durumu: NotPresent olarak görünüyorsa, bunu yükleyin:

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

Installing the OpenSSH Server feature in PowerShell

Warning

Windows, yerleşik OpenSSH Sunucu özelliğini C:\Windows\System32\OpenSSH\ konumuna yükler. OpenSSH'yi doğrudan C:\Windows konumuna manuel olarak yüklemeyin; bu, Windows dizin kurallarını ihlal eder ve izin sorunlarına neden olabilir.

3. sshd hizmetini başlatın ve otomatik olarak başlaması için ayarlayın:

Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic'

4. Hizmetin çalıştığını doğrulayın:

Get-Service sshd

OpenSSH sshd service status showing Running

Durum alanında Çalışıyor yazmalıdır. Ayrıca, başlangıç türünün Otomatik olarak ayarlandığını da doğrulayın:

Get-CimInstance Win32_Service -Filter "Name='sshd'" | Select-Object StartMode

sshd service StartMode showing Auto

5. Yüklü OpenSSH ikili dosyasının konumunu ve sürüm bilgilerini kontrol edin:

Get-Command sshd | Select-Object Source (Get-Command sshd).FileVersionInfo

sshd binary path and version information

Kaynak alanı, kurulum yolunun C:\Windows\System32\OpenSSH\sshd.exe ile eşleştiğini doğrular ; FileVersionInfo, OpenSSH sürümünü gösterir (örneğin, Windows Server 2022'de OpenSSH_8.1p1, FileVersion 8.1.0.1 ).

Güvenlik duvarı bağlantı noktasını açma

Varsayılan olarak, OpenSSH Sunucu özelliğinin yüklenmesi normalde OpenSSH-Server-In-TCP adlı bir gelen güvenlik duvarı kuralını otomatik olarak oluşturur. Bu kuralın mevcut ve etkin olduğunu doğrulayın:

Get-NetFirewallRule -Name *OpenSSH-Server*

OpenSSH inbound firewall rule enabled

Kural yoksa, manuel olarak oluşturun (kural adının farklı olduğuna dikkat edin; manuel olarak oluşturulan bu kural, otomatik olarak oluşturulan OpenSSH-Server-In-TCP kuralından ayrıdır):

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

Bağlantı noktasının gerçekten açık ve dinleme durumunda olduğunu doğrulayın:

Test-NetConnection -ComputerName localhost -Port 22

Test-NetConnection to port 22 succeeded

TcpTestSucceeded : True sonucu, hizmetin yerel olarak dinleme halinde olduğunu doğrular. Bu, güvenlik duvarının dışarıdan gelen trafiği geçirdiğini doğrulamaz; tam olarak doğrulamak için, ağdaki farklı bir makineden aynı komutu çalıştırın ve localhost yerine sunucunun IP adresini kullanın.

SFTP için sshd_config dosyasını yapılandırma

Yapılandırma dosyası şu konumdadır:

C:\ProgramData\ssh\sshd_config

Dosyayı yönetici haklarıyla bir metin düzenleyicide açın (örneğin, Not Defteri'ni Yönetici olarak çalıştırın) ve aşağıdaki ayarların mevcut olduğunu (veya gerektiği gibi yapılandırıldığını) doğrulayın:

Port 22 PasswordAuthentication yes Subsystem sftp sftp-server.exe

sshd_config Subsystem sftp line

Info

Bu kılavuzu basit tutmak amacıyla buradaPasswordAuthentication yes gösterilmiştir, ancak internete açık bir üretim sunucusu için PasswordAuthentication no ile anahtar tabanlı kimlik doğrulama daha güvenli bir seçimdir. Anahtar tabanlı kimlik doğrulama kullanmayı planlıyorsanız, aşağıdaki isteğe bağlı AuthorizedKeysFile ayarına bakın.

Warning

Subsystem sftp satırı, SFTP oturumlarını hangi ikili dosyanın işleyeceğini tanımlar. Bu satır mevcut ve yorum satırı kaldırılmış değilse, SSH bağlantıları çalışır ancak SFTP dosya aktarımı başarısız olur.

Varsayılan olarak, bu satır yerleşik özelliğin yapılandırma dosyasında zaten mevcuttur ve yorum satırı kaldırılmıştır. Eğer eksikse veya # ile yorumlanmışsa, ekleyin veya yorum satırını kaldırın, ardından dosyayı kaydedin.

Info

Daha yeni OpenSSH sürümleri, harici bir ikili dosyayı çağırmayan yerleşik bir işleyici olan Subsystem sftp internal-sftp'yi de destekler:

Subsystem sftp internal-sftp

Hem sftp-server.exe hem de internal-sftp çalışır; bu kılavuzda, varsayılan olarak gelen değer olduğu için sftp-server.exe kullanılmaktadır.

sshd_config dosyasında isteğe bağlı olarak eklemek isteyebileceğiniz ayarlar:

# Default value, already set; shown here for reference if key-based authentication isn't working # AuthorizedKeysFile .ssh/authorized_keys # Restrict access to specific users (optional) # AllowUsers username1 username2 # Logging SyslogFacility LOCAL0 LogLevel INFO

Info

Yerel Administrators grubunun üyesi olan hesaplar için, OpenSSH'nin Windows sürümü, kullanıcının profilindeki .ssh\authorized_keys dosyası yerine C:\ProgramData\ssh\administrators_authorized_keys dosyasını kullanır. Bir yönetici hesabı için anahtar tabanlı kimlik doğrulama beklendiği gibi çalışmıyorsa, bunun yerine bu dosyayı kontrol edin.

sshd_config dosyasında herhangi bir değişiklik yaptıktan sonra, değişikliğin uygulanması için hizmeti yeniden başlatın:

Restart-Service sshd

WinSCP kullanarak SFTP bağlantısını kontrol etme

Ücretsiz WinSCP istemcisini yükleyin ve çalıştırın . Bağlantı ayarları penceresinde SFTP dosya aktarım protokolünü seçin, Sunucu adı alanına sunucunun ana bilgisayar adını veya IP adresini girin, Bağlantı noktası numarası alanını 22 olarak bırakın (farklı bir bağlantı noktası yapılandırmadıysanız) ve bağlanacağınız Windows hesabının kimlik bilgilerini girin.

WinSCP login window with SFTP protocol selected

Her şey doğru şekilde ayarlanmışsa, istemci SFTP sunucusuna bağlanır ve kullanıcının ana dizininin (varsayılan profil dizini) içeriğini görüntüler. Varsayılan olarak, kullanıcı C:\Users\<kullanıcı adı> konumuna yönlendirilir. Ardından dosyalar, SFTP protokolü üzerinden sunucu ve istemci arasında güvenli bir şekilde aktarılabilir.

WinSCP connected to the SFTP server showing the home directory

OpenSSH Sunucu özelliğini kaldırma

1. PowerShell'i Yönetici olarak başlatın.

2. Özelliği kaldırmadan önce sshd hizmetini durdurun; hizmet hala çalışırken veya aktif olarak kullanılırken özelliğin kaldırılması, işlemin başarısız olmasına veya donmasına neden olabilir:

Stop-Service sshd

3. Özelliği kaldırın:

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

4. (İsteğe bağlı) Güvenlik duvarı kuralını kaldırın. Bu işlem, varsa hem otomatik olarak oluşturulan hem de manuel olarak oluşturulan kuralları kapsar:

Remove-NetFirewallRule -Name OpenSSH-Server-In-TCP -ErrorAction SilentlyContinue Remove-NetFirewallRule -DisplayName 'OpenSSH Server (sshd)' -ErrorAction SilentlyContinue

5. (İsteğe bağlı) Yapılandırmayı kaldırma: Yalnızca yapılandırma dosyasını kaldırabilir veya ana bilgisayar anahtarlarını da içeren tam bir temizlik yapabilirsiniz.

Ana bilgisayar anahtarlarına dokunmadan yalnızca sshd_config dosyasını kaldırmak için:

Remove-Item -Path 'C:\ProgramData\ssh\sshd_config' -Force

Ana bilgisayar anahtarlarını da içeren tam bir temizlik için, bunun yerine tüm yapılandırma klasörünü kaldırın:

Remove-Item -Path 'C:\ProgramData\ssh' -Recurse -Force

Warning

Klasörün tamamını kaldırmak, sunucunun ana bilgisayar anahtarlarını da kalıcı olarak siler. Yeniden kurulumdan sonra bağlanan istemciler, sunucuyu yeni ve tanınmayan bir SSH ana bilgisayarı olarak algılar. Bunu yalnızca, daha sonra OpenSSH Sunucusunu aynı yapılandırmayla yeniden kurmayı planlamıyorsanız yapın.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA