Windows 10'da OpenSSH

Şub 27, 2019

A. OpenSSH Kurulumu

a. Ayarlar üzerinden OpenSSh kurulumu

1.       OpenSSH’ı sisteme kurmak için Ayarlar açılır ve Uygulamalar butonuna tıklanır.

Ayarlar 1

2.       Ardından açılan Uygulamalar ve Özellikler sekmesinde  İsteğe bağlı özellikleri yönet ‘e tıklanır.

Ayarlar 2

3.       Açılan listede OpenSSH İstemcisinin veya sunucusunun yüklü olup olmadığı görüntülenebilir. Eğer yüklü değilse Özellik ekle butonuna tıklanır.

Ayarlar 3


4.       Ardından açılan listede yüklenmesi istenilen bileşen bulunup yüklenebilir.

Ayarlar 4

 NOT: OpenSSH Sunucusu yüklemek, “OpenSSH-Server-In-TCP” isimli ve port 22 den gelen SSH trafiğine izin veren bir “Güvenlik duvarı” kuralı oluşturur.



b.PowerShell ile OpenSSH kurulumu

            Windows tuşu + X ile açılan pencere “WindowsPowerShell (Yönetici)” seçilerek powershell komut ekranı yönetici izinleri ile çalıştırılır.

OpenSSH istemcisini yüklemek için;

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

OpenSSH sunucusunu yüklemek için;

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

Bu komutların çalıştırılması aşağıda verilen çıktıyı verecektir.

Path          :

Online        : True

RestartNeeded : False

NOT: Yüklemek istenen OpenSSH ın sürüm ve paket ismi kontrolü

                Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

                        komutu ile yapılabilir. Bu komutun çalıştırılması şu çıktıyı verecektir:

Name  : OpenSSH.Client~~~~0.0.1.0

State : NotPresent

Name  : OpenSSH.Server~~~~0.0.1.0

State : NotPresent 


B. OpenSSH ‘ı Kaldırmak


              Windows Ayarlar’ı kullanarak OpenSSH’ı kaldırmak için “
Uygulamalar - >  Uygulamalar ve Özellikler - > İsteğe bağlı özellikleri yönet” e gidilir. Bu listede istenilen bileşenler seçilip ‘Kaldır’ seçilerek kaldırılabilir.

PowerShell kullanarak OpenSSH ı kaldırmak için,

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

      veya

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

            komutları kullanılabilir.


C. OpenSSh Sunucusunu Yapılandırmak


a. Başlangıç

--- “sshd” servisini başlatmak için:

                Start-Service sshd

--- Windows başlatıldığında sshd servisinin otomatik olarak başlatılması için:

                Set-Service -Name sshd -StartupType 'Automatic'

--- “OpenSSh-Server-In-TCP” isimli güvenlik duvarı kuralının “enabled” durumda olup olmadığını kontrol etmek için:

                Get-NetFirewallRule -Name *ssh*

komutları kullanılabilir.

powershell 1

b. Varsayılan komut kabuğu (Default command shell)

Windows sisteme yapılan ssh bağlantısında kullanıcıların karşılaşacağı varsayılan komut kabuğu (command shell) “cmd.exe” dir.Varsayılan komut kabuğunu PowerShell olarak değiştirmek için,

                New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String –Force

                komutu girilir.
powershell 2

Windows 10 1089 OpenSSH desteklenen özellikler

Windows’ta sshd yapılandırma ayarlarını varsayılan olarak C:\programdata\ssh\sshd_config dosyasından okur.Bu dosyada yapılan değişikliklerle ssh sunucusu yapılandırılabilir.
    
    ·        
AllowGroups, AllowUsers, DenyGroups ve DenyUsers
    
    ·        
AuthenticationMethods (Windows’ta sadece “password” ve “publickey metodları kullanılabilir.
    
    ·        
ChrootDirectory
    
    ·        
HostKey
    
    ·        
Match
    
    ·        
PermitRootLogin
    
    ·        
SyslogFacility


Windows 10 1809 OpenSSH desteklenmeyen özellikler

·         AcceptEnv

·         AllowStreamLocalForwarding

·         AuthorizedKeysCommand

·         AuthorizedKeysCommandUser

·         AuthorizedPrincipalsCommand

·         AuthorizedPrincipalsCommandUser

·         Compression

·         ExposeAuthInfo

·         GSSAPIAuthentication

·         GSSAPICleanupCredentials

·         GSSAPIStrictAcceptorCheck

·         HostbasedAcceptedKeyTypes

·         HostbasedAuthentication

·         HostbasedUsesNameFromPacketOnly

·         IgnoreRhosts

·         IgnoreUserKnownHosts

·         KbdInteractiveAuthentication

·         KerberosAuthentication

·         KerberosGetAFSToken

·         KerberosOrLocalPasswd

·         KerberosTicketCleanup

·         PermitTunnel

·         PermitUserEnvironment

·         PermitUserRC

·         PidFile

·         PrintLastLog

·         RDomain

·         StreamLocalBindMask

·         StreamLocalBindUnlink

·         StrictModes

·         X11DisplayOffset

·         X11Forwarding

·         X11UseLocalhost

·         XAuthLocation


Kaynakça:

docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_server_configuration