Differences
This shows you the differences between the selected revisions of the page.
| 2018-05-19 | 2018-06-13 | ||
| Restored revision 1521490334. Undoing revision 1526693203. (martin) (hidden) | Windows 10 version 1803 has openssh built in (as optional feature) + new service name + matching firewall rule name (martin) | ||
| Line 4: | Line 4: | ||
| ===== Installing SFTP/SSH Server ===== | ===== Installing SFTP/SSH Server ===== | ||
| + | |||
| + | ==== On Windows 10 version 1803 and newer ==== | ||
| + | |||
| + | * In //Settings// app, go to //Apps > Apps & features > Manage optional features//. | ||
| + | * Locate //"OpenSSH server"// feature, expand it, and select //Install//. | ||
| + | |||
| + | Binaries are installed to ''%WINDIR%\System32\OpenSSH''. Configuration file (''sshd_config'') and host keys are installed to ''%ProgramData%\ssh'' (only after the server is started for the first time). | ||
| + | |||
| + | You may still want to use the following manual installation, if you want to install a newer version of OpenSSH than the one built into Windows 10. | ||
| + | |||
| + | ==== On earlier versions of Windows ==== | ||
| * Download the latest [[https://github.com/PowerShell/Win32-OpenSSH/releases|OpenSSH for Windows binaries]] (package ''OpenSSH-Win64.zip'' or ''OpenSSH-Win32.zip'') &win32 &win64 | * Download the latest [[https://github.com/PowerShell/Win32-OpenSSH/releases|OpenSSH for Windows binaries]] (package ''OpenSSH-Win64.zip'' or ''OpenSSH-Win32.zip'') &win32 &win64 | ||
| * As the Administrator, extract the package to ''C:\Program Files\OpenSSH'' | * As the Administrator, extract the package to ''C:\Program Files\OpenSSH'' | ||
| * As the Administrator, install //sshd// and //ssh-agent// services: \\ ''powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1'' | * As the Administrator, install //sshd// and //ssh-agent// services: \\ ''powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1'' | ||
| + | |||
| + | ===== Configuring SSH server ===== | ||
| + | |||
| * Allow incoming connections to %%SSH%% server in Windows Firewall: | * Allow incoming connections to %%SSH%% server in Windows Firewall: | ||
| - | * Either run the following PowerShell command (Windows 8 and 2012 or newer only), &win8 &win2012 as the Administrator: \\ ''%%New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22%%'' | + | * Either run the following PowerShell command (Windows 8 and 2012 or newer only), &win8 &win2012 as the Administrator: \\ ''%%New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22%%'' | 
| * or go to //Control Panel > System and Security > Windows Firewall//((//Windows Defender Firewall// on Windows 10.))// > Advanced Settings > Inbound Rules// and add a new rule for port 22. &wincp | * or go to //Control Panel > System and Security > Windows Firewall//((//Windows Defender Firewall// on Windows 10.))// > Advanced Settings > Inbound Rules// and add a new rule for port 22. &wincp | ||
| * Start the service and/or configure automatic start: | * Start the service and/or configure automatic start: | ||
| - | * Go to //Control Panel > System and Security > Administrative Tools// and open //Services//. Locate //sshd// service. &wincp | + | * Go to //Control Panel > System and Security > Administrative Tools// and open //Services//. Locate //%%OpenSSH SSH Server%%// service. &wincp | 
| * If you want the server to start automatically when your machine is started: Go to //Action > Properties//. In the Properties dialog, change //Startup type// to //Automatic// and confirm. | * If you want the server to start automatically when your machine is started: Go to //Action > Properties//. In the Properties dialog, change //Startup type// to //Automatic// and confirm. | ||
| - | * Start the //sshd// service by clicking the //Start the service//. | + | * Start the //%%OpenSSH SSH Server%%// service by clicking the //Start the service//. | 
| //These instructions are partially based on [[https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH|the official deployment instructions]].// | //These instructions are partially based on [[https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH|the official deployment instructions]].// | ||
| Line 27: | Line 41: | ||
| ===== [[connecting]] Connecting to the server ===== | ===== [[connecting]] Connecting to the server ===== | ||
| - | Before the first connection, find out fingerprint of the server's ED25519 key by running ''%%.\ssh-keygen.exe -l -f "%ProgramData%\ssh\ssh_host_ed25519_key" -E md5%%'' from the ''C:\Program Files\OpenSSH'', as the Administrator (with PowerShell, use ''$env:ProgramData'' instead of ''%ProgramData%''): &winpath | + | Before the first connection, find out fingerprint of the server's ED25519 key by running ''%%.\ssh-keygen.exe -l -f "%ProgramData%\ssh\ssh_host_ed25519_key" -E md5%%'' from the OpenSSH installation folder (''%WINDIR%\System32\OpenSSH'' or ''C:\Program Files\OpenSSH''), as the Administrator (with PowerShell, use ''$env:ProgramData'' instead of ''%ProgramData%''): &winpath | 
| <code> | <code> | ||
| - | C:\Program Files\OpenSSH>.\ssh-keygen.exe -l -f "%ProgramData%\ssh\ssh_host_ed25519_key" -E md5 | + | C:\Windows\System32\OpenSSH>.\ssh-keygen.exe -l -f "%ProgramData%\ssh\ssh_host_ed25519_key" -E md5 | 
| 256 MD5:0d:df:0a:db:b4:e9:f1:08:d5:59:2b:91:8e:08:1c:78 martin@example (ED25519) | 256 MD5:0d:df:0a:db:b4:e9:f1:08:d5:59:2b:91:8e:08:1c:78 martin@example (ED25519) | ||
| </code> | </code> | ||