Windows 10 ssh désactiver l'authentification par mot de passe?

10

Windows 10 a récemment ajouté OpenSSH en tant que fonctionnalité Windows facultative. J'ai trouvé le fichier de configuration C: \ Windows \ System32 \ OpenSSH \ sshd_config et me suis donné le droit de le modifier.

Voici le fichier que j'ai:

#   $OpenBSD: sshd_config,v 1.84 2011/05/23 03:30:07 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# 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 ::

# The default requires explicit activation of protocol 1
#Protocol 2

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#RSAAuthentication yes
#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

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and 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

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

# Set this to 'yes' to enable PAM authentication, account processing, 
# and session processing. If this is enabled, PAM authentication will 
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
#ChrootDirectory 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
#   X11Forwarding no
#   AllowTcpForwarding no
#   ForceCommand cvs server
# PubkeyAcceptedKeyTypes ssh-ed25519*

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Les seules entrées non par défaut sont les 3 dernières lignes qui devraient désactiver l'authentification par mot de passe . Après que je change le fichier que je vais aux services et redémarrer ssh-agent, SSH Server Brokeet SSH Server Proxydans l' espoir qu'ils vont voir les changements dans le fichier de configuration. J'utilise ensuite putty to ssh pour localhost. Putty me demande mon nom d'utilisateur, puis il me demande mon mot de passe et se connecte avec succès lorsque je le mets.

Dans la nouvelle fonctionnalité SSH de Windows 10, comment puis-je désactiver l'authentification par mot de passe?

Corey Ogburn
la source
3
Depuis la mise à jour Windows 10 d'avril 2018 (version 1803), le fichier de configuration se trouve dans c: \ ProgramData \ ssh \ sshd_config
Gene Goykhman
Thx @GeneGoykhman. Notez que vous pouvez remplacer cet emplacement dans le registre des services Windows si vous le souhaitez.
MarcH

Réponses:

4

Dans Windows 10 v1803 (alias 17134.191), il a changé.

Modifier c: \ ProgramData \ ssh \ sshd_config (alias% PROGRAMDATA% \ ssh \ sshd_config)

Adam Dunsford
la source
2

Vous notez que vous disposez du service "SSH Server Proxy" - ce service ne fait pas partie de la fonctionnalité facultative "OpenSSH Server (Beta)" dans Windows 10 Fall Creators Update (v1709). Cela fait partie du mode développeur de Windows - je me demande si cela (éventuellement en combinaison avec WSL) vous conduit à vous connecter involontairement à un autre serveur OpenSSH, et pourquoi il semble que la configuration ne soit pas respectée.

Essayez d'arrêter ou de désactiver le service "SSH Server Proxy" et voyez si le comportement change, ou bien ajustez le port # de votre Windows \ System32 \ OpenSSH \ sshd_config sur un port non standard et testez à nouveau.

Je viens de déployer une machine virtuelle Windows 10 v1709 de laboratoire pour tester cela, et je peux confirmer qu'en décommentant la ligne "# PasswordAuthentication yes" (et en basculant la valeur sur "no") qu'avec un redémarrage du service sshd, il bloque les connexions par mot de passe .

Les seuls services que "OpenSSH Server (beta)" me donne sont "sshd" et "ssh-agent". Nouvelle machine virtuelle, sans le mode développeur Windows ou WSL / Bash sur Ubuntu activé.

Joshua McKinnon
la source