Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini membahas konfigurasi khusus Windows untuk OpenSSH Server (sshd).
OpenSSH mempertahankan dokumentasi terperinci untuk opsi konfigurasi secara online di OpenSSH.com. Dokumentasi ini tidak diduplikasi dalam kumpulan dokumentasi ini.
File konfigurasi OpenSSH
OpenSSH memiliki file konfigurasi untuk pengaturan server dan klien. OpenSSH adalah sumber terbuka dan ditambahkan ke sistem operasi klien Windows Server dan Windows yang dimulai dengan Windows Server 2019 dan Windows 10 (build 1809). Dokumentasi sumber terbuka untuk file konfigurasi OpenSSH tidak diulang di sini. File konfigurasi klien dapat ditemukan di halaman manual ssh_config. File konfigurasi server OpenSSH dapat ditemukan di halaman manual sshd_config.
OpenSSH Server membaca data konfigurasi dari %programdata%\ssh\sshd_config secara default. Anda dapat menentukan file konfigurasi yang berbeda dengan menjalankan sshd.exe dengan -f parameter . Jika file hilang, sshd menghasilkan file dengan konfigurasi default saat layanan dimulai.
Di Windows, Klien OpenSSH (ssh) membaca data konfigurasi dari file konfigurasi dalam urutan berikut:
- Melalui
ssh.exedimulai dengan parameter-F, dengan jalur ke file konfigurasi dan nama entri yang ditentukan dari file tersebut. - Melalui file konfigurasi pengguna di
%userprofile%\.ssh\config. - Melalui file konfigurasi di seluruh sistem di
%programdata%\ssh\ssh_config.
Mengonfigurasi shell default untuk OpenSSH di Windows
Shell perintah default memberikan pengalaman yang dilihat pengguna saat menyambungkan ke server dengan menggunakan SSH. Pengaturan default awal di Windows adalah prompt perintah Windows (cmd.exe). Windows juga menyertakan Shell perintah PowerShell, dan non-Microsoft juga tersedia untuk Windows dan mungkin dikonfigurasi sebagai shell default untuk server.
Untuk mengatur shell perintah default, pertama-tama konfirmasikan bahwa folder penginstalan OpenSSH ada di jalur sistem.
Untuk Windows, folder penginstalan default adalah %systemdrive%\Windows\System32\openssh.
Perintah berikut menunjukkan pengaturan jalur saat ini dan menambahkan folder penginstalan OpenSSH default ke dalamnya.
| Antarmuka baris perintah | Perintah yang akan digunakan |
|---|---|
| Command | path |
| PowerShell | $env:path |
Anda dapat mengonfigurasi shell ssh default di registri Windows dengan menambahkan jalur lengkap ke eksekusi shell ke HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH dalam nilai string DefaultShell.
Contoh perintah PowerShell dengan hak akses tingkat tinggi berikut mengatur shell default menjadi powershell.exe pada OpenSSH Server. (Pengaturan jalur ini tidak berlaku untuk Klien OpenSSH.)
$NewItemPropertyParams = @{
Path = "HKLM:\SOFTWARE\OpenSSH"
Name = "DefaultShell"
Value = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
PropertyType = "String"
Force = $true
}
New-ItemProperty @NewItemPropertyParams
Konfigurasi Windows di sshd_config
Di Windows, sshd membaca data konfigurasi dari %programdata%\ssh\sshd_config secara default. Anda dapat menentukan file konfigurasi yang berbeda dengan menjalankan sshd.exe dengan -f parameter .
Jika file hilang, sshd menghasilkan file dengan konfigurasi default saat layanan dimulai.
Bagian berikut menjelaskan pengaturan konfigurasi khusus Windows yang dimungkinkan melalui entri di sshd_config. Ada kemungkinan pengaturan konfigurasi lain yang tidak tercantum di sini. Mereka tercakup secara rinci dalam dokumentasi Win32 OpenSSH.
Tip
OpenSSH Server (sshd) membaca file konfigurasi saat layanan dimulai. Setiap perubahan pada file konfigurasi mengharuskan layanan dimulai ulang.
IzinkanKelompok, IzinkanPengguna, TolakKelompok, TolakPengguna
Anda dapat mengontrol pengguna dan grup mana yang dapat terhubung ke server dengan menggunakan AllowGroupsarahan , , AllowUsersDenyGroups, dan DenyUsers .
Arahan izinkan dan tolak diproses dalam urutan berikut: DenyUsers, , AllowUsersDenyGroups, dan terakhir AllowGroups.
Semua nama akun harus ditentukan dalam huruf kecil.
Untuk informasi selengkapnya tentang pola dan kartubebas di ssh_config, lihat halaman manual sshd_config OpenBSD.
Saat mengonfigurasi aturan berbasis pengguna/grup dengan pengguna atau grup domain, gunakan format berikut: user?domain*.
Windows memungkinkan beberapa format untuk menentukan prinsipal domain, tetapi mungkin bertentangan dengan pola Linux standar. Untuk alasan itu, * digunakan untuk mencakup Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN). Selain itu, pendekatan ini menggunakan ?, alih-alih @, untuk menghindari konflik dengan username@host format .
Pengguna grup kerja, grup, dan akun yang terhubung ke internet selalu diselesaikan ke nama akun lokal mereka (tidak ada bagian domain, mirip dengan nama Unix standar). Pengguna dan grup domain secara ketat diselesaikan ke format domain_short_name\user_name .
Semua aturan konfigurasi berbasis pengguna dan grup perlu mematuhi format ini.
Contoh berikut menolak contoso\admin dari host 192.168.2.23 dan memblokir semua pengguna dari domain Contoso. Ini juga memungkinkan pengguna yang merupakan anggota contoso\sshusers grup dan contoso\serveroperators .
DenyUsers contoso\admin@192.168.2.23
DenyUsers contoso\*
AllowGroups contoso\sshusers contoso\serveroperators
Contoh berikut memungkinkan pengguna localuser untuk masuk dari host 192.168.2.23 dan memungkinkan anggota grup sshusers.
AllowUsers localuser@192.168.2.23
AllowGroups sshusers
AuthenticationMethods
Untuk Windows OpenSSH, satu-satunya metode autentikasi yang tersedia adalah password dan publickey.
Important
Autentikasi melalui akun Microsoft Entra saat ini tidak didukung.
AuthorizedKeysFile
Defaultnya adalah .ssh/authorized_keys. Jika Anda tidak menentukan jalur absolut, OpenSSH mencari file relatif terhadap direktori beranda Anda, seperti C:\Users\username. Jika pengguna termasuk dalam grup administrator, %programdata%/ssh/administrators_authorized_keys digunakan sebagai gantinya.
Tip
File administrators_authorized_keys hanya boleh memiliki entri izin untuk NT Authority\SYSTEM akun dan BUILTIN\Administrators grup keamanan. Akun NT Authority\SYSTEM harus diberikan kontrol penuh. Grup BUILTIN\Administrators keamanan diperlukan untuk memungkinkan administrator mengelola kunci yang diotorisasi. Anda dapat memilih akses yang diperlukan. Untuk memberikan izin, Anda dapat membuka prompt PowerShell yang ditingkatkan dan menjalankan perintah icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F".
ChrootDirectory (dukungan ditambahkan dalam v7.7.0.0)
Arahan ini hanya didukung dengan sesi SFTP. Sesi jarak jauh ke dalam cmd.exe tidak mendukung ChrootDirectory. Untuk menyiapkan server chroot khusus sftp, atur ForceCommand ke internal-sftp. Anda juga dapat menyiapkan SCP dengan chroot dengan menerapkan shell kustom yang hanya memungkinkan SCP dan SFTP.
GSSAPIAuthentication
Argumen GSSAPIAuthentication konfigurasi menentukan apakah autentikasi pengguna berbasis GSSAPI (Kerberos) diizinkan. Default untuk GSSAPIAuthentication adalah tidak.
Autentikasi GSSAPI juga memerlukan penggunaan -K sakelar yang menentukan nama host saat Anda menggunakan Klien OpenSSH. Atau, Anda dapat membuat entri yang sesuai dalam konfigurasi klien SSH. Di Windows, Klien OpenSSH membaca data konfigurasi dari %userprofile%\.ssh\config secara default.
Berikut adalah contoh konfigurasi Klien GSSAPI OpenSSH:
# Specify a set of configuration arguments for a host matching the
# pattern SERVER01.contoso.com.
#
# Patterns are case sensitive.
Host SERVER01.contoso.com
# Enables GSSAPI authentication.
GSSAPIAuthentication yes
# Forward (delegate) credentials to the server.
GSSAPIDelegateCredentials yes
Important
GSSAPI hanya tersedia mulai Windows Server 2022, Windows 11, dan Windows 10 (Pembaruan Mei 2021).
HostKey
Defaultnya adalah:
#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key
Jika default tidak ada, sshd secara otomatis menghasilkannya pada awal layanan.
Match
Cocok dengan kondisi menggunakan satu atau beberapa kriteria. Setelah kecocokan, argumen konfigurasi berikutnya diterapkan. Pencocokan menggunakan aturan pola seperti yang dijelaskan dalam bagian AllowGroups, AllowUsers, DenyGroups, DenyUsers. Nama pengguna dan grup harus dalam huruf kecil.
PermitRootLogin
Tidak berlaku di Windows. Untuk mencegah administrator masuk, gunakan Administrator dengan direktif DenyGroups .
SyslogFacility
Jika Anda memerlukan pengelogan berbasis file, gunakan LOCAL0. Log dihasilkan di bawah %programdata%\ssh\logs. Untuk nilai lain, termasuk nilai default, AUTH mengarahkan pengelogan ke ETW. Untuk informasi selengkapnya, lihat Fasilitas Pengelogan di Windows.
Argumen konfigurasi
Argumen konfigurasi berikut tersedia mulai Windows Server 2022, Windows 11, dan Windows 10 (Pembaruan Mei 2021):
GSSAPIAuthentication
Argumen konfigurasi berikut tidak tersedia dalam versi OpenSSH yang dikirim di Windows Server dan Windows:
AcceptEnvAllowStreamLocalForwardingAuthorizedKeysCommandAuthorizedKeysCommandUserAuthorizedPrincipalsCommandAuthorizedPrincipalsCommandUserExposeAuthInfoGSSAPICleanupCredentialsGSSAPIStrictAcceptorCheckHostbasedAcceptedKeyTypesHostbasedAuthenticationHostbasedUsesNameFromPacketOnlyIgnoreRhostsIgnoreUserKnownHostsKbdInteractiveAuthenticationKerberosAuthenticationKerberosGetAFSTokenKerberosOrLocalPasswdKerberosTicketCleanupPermitTunnelPermitUserEnvironmentPermitUserRCPidFilePrintLastLogPrintMotdRDomainStreamLocalBindMaskStreamLocalBindUnlinkStrictModesX11DisplayOffsetX11ForwardingX11UseLocalhostXAuthLocation