web-dev-qa-db-fra.com

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

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 avoir modifié le fichier, je vais aux services et redémarre ssh-agent, SSH Server Broke, et SSH Server Proxy dans l'espoir qu'ils verront les changements dans le fichier de configuration. J'utilise ensuite PuTTY pour ssh vers 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?

10
Corey Ogburn

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

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

4
Adam Dunsford

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). Il fait partie du mode développeur 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 un laboratoire Windows 10 v1709 VM pour tester cela, et je peux le confirmer en décommentant la ligne "# PasswordAuthentication yes" (et en basculant la valeur sur "no")) avec seulement un sshd redémarrage du service, 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é.

2
Joshua McKinnon