Last active
February 19, 2020 07:11
-
-
Save thatreguy/473cd5b28e3d3db07e19499719d00d40 to your computer and use it in GitHub Desktop.
Windows OpenSSH server survival tips
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is the sshd server system-wide configuration file. See | |
# sshd_config(5) for more information. | |
# The strategy used for options in the default sshd_config shipped with | |
# OpenSSH is to specify options with their default value where | |
# possible, but leave them commented. Uncommented options override the | |
# default value. | |
#Port 22 | |
#AddressFamily any | |
#ListenAddress 0.0.0.0 | |
#ListenAddress :: | |
#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 | |
# Ciphers and keying | |
#RekeyLimit default none | |
# Logging | |
#SyslogFacility AUTH | |
#LogLevel INFO | |
# Authentication: | |
#LoginGraceTime 2m | |
#PermitRootLogin prohibit-password | |
#StrictModes yes | |
#MaxAuthTries 6 | |
#MaxSessions 10 | |
PubkeyAuthentication yes | |
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 | |
# but this is overridden so installations will only check .ssh/authorized_keys | |
AuthorizedKeysFile .ssh/authorized_keys | |
#AuthorizedPrincipalsFile none | |
# For this to work you will also need host keys in %programData%/ssh/ssh_known_hosts | |
#HostbasedAuthentication no | |
# Change to yes if you don't trust ~/.ssh/known_hosts for | |
# HostbasedAuthentication | |
#IgnoreUserKnownHosts no | |
# Don't read the user's ~/.rhosts and ~/.shosts files | |
#IgnoreRhosts yes | |
# To disable tunneled clear text passwords, change to no here! | |
#PasswordAuthentication yes | |
#PermitEmptyPasswords no | |
# GSSAPI options | |
#GSSAPIAuthentication no | |
#AllowAgentForwarding yes | |
#AllowTcpForwarding yes | |
#GatewayPorts no | |
#PermitTTY yes | |
#PrintMotd yes | |
#PrintLastLog yes | |
#TCPKeepAlive yes | |
#UseLogin no | |
#PermitUserEnvironment no | |
#ClientAliveInterval 0 | |
#ClientAliveCountMax 3 | |
#UseDNS no | |
#PidFile /var/run/sshd.pid | |
#MaxStartups 10:30:100 | |
#PermitTunnel no | |
#ChrootDirectory none | |
#VersionAddendum none | |
# no default banner path | |
#Banner none | |
# override default of no subsystems | |
Subsystem sftp sftp-server.exe | |
# Example of overriding settings on a per-user basis | |
#Match User anoncvs | |
# AllowTcpForwarding no | |
# PermitTTY no | |
# ForceCommand cvs server | |
# Match Group administrators | |
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
choco install openssh --pre
Edit C:\Program Files\OpenSSH-Win64\sshd_config_default and Set PubkeyAuthentication yes. Also comment out last line saying:
Match Group administrators
AuthorizedKeysFile PROGRAMDATA/ssh/administrators_authorized_keys
Open cmd and create directory .ssh in the user's root directory (%userprofile%) (Also see: https://github.com/PowerShell/Win32-OpenSSH/wiki/ssh.exe-examples#setup-server-side-sshd). In that directory add contents of your public key in file authorized_keys
Go to C:\Program Files\OpenSSH-Win64 and run install-sshd.ps1 in powershell
open cmd as admin and run net stop sshd and net start sshd
If on GCP, enable port 22 inbound
On Windows Firewall enable port 22 inbound
For debugging, stop sshd service first and then from an elevated cmd: sshd -ddd