Windows 10 ssh Passwortauthentifizierung deaktivieren?

10

Windows 10 hat kürzlich OpenSSH als optionale Windows-Funktion hinzugefügt. Ich habe die Konfigurationsdatei C: \ Windows \ System32 \ OpenSSH \ sshd_config gefunden und mir das Recht gegeben, sie zu ändern.

Hier ist die Datei, die ich habe:

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

Die einzigen nicht standardmäßigen Einträge sind die unteren drei Zeilen, in denen die Kennwortauthentifizierung deaktiviert werden soll . Nachdem ich die Datei , die ich auf Dienste und Neustart gehen ändern ssh-agent, SSH Server Brokeund SSH Server Proxyin der Hoffnung , sie werden die Änderungen in der Konfigurationsdatei sehen. Ich benutze dann Kitt, um zu localhost zu ssh. Putty fragt nach meinem Benutzernamen, fragt dann aber nach meinem Passwort und stellt eine erfolgreiche Verbindung her, wenn ich es eingebe.

Wie kann ich in der neuen SSH-Funktion von Windows 10 die Kennwortauthentifizierung deaktivieren?

Corey Ogburn
quelle
3
Ab dem Windows 10 April 2018 Update (Version 1803) befindet sich die Konfigurationsdatei in c: \ ProgramData \ ssh \ sshd_config
Gene Goykhman
Danke @GeneGoykhman. Beachten Sie, dass Sie diesen Speicherort in der Windows Services-Registrierung überschreiben können, wenn Sie möchten.
MarcH

Antworten:

4

In Windows 10 v1803 (auch bekannt als 17134.191) hat sich dies geändert.

Bearbeiten Sie c: \ ProgramData \ ssh \ sshd_config (auch bekannt als% PROGRAMDATA% \ ssh \ sshd_config).

Adam Dunsford
quelle
2

Sie stellen fest, dass Sie den Dienst "SSH Server Proxy" haben - dieser Dienst ist nicht Teil der optionalen Funktion "OpenSSH Server (Beta)" in Windows 10 Fall Creators Update (v1709). Es ist Teil des Windows-Entwicklermodus. Ich frage mich, ob dies (möglicherweise in Kombination mit WSL) dazu führt, dass Sie unbeabsichtigt eine Verbindung zu einem anderen OpenSSH-Server herstellen und warum die Konfiguration anscheinend nicht eingehalten wird.

Versuchen Sie, den Dienst "SSH Server Proxy" zu stoppen oder zu deaktivieren, und prüfen Sie, ob sich das Verhalten ändert, oder passen Sie alternativ die Portnummer in Windows \ System32 \ OpenSSH \ sshd_config auf einen nicht standardmäßigen Port an und testen Sie sie erneut.

Ich habe gerade eine Windows 10 v1709-Labor-VM bereitgestellt, um dies zu testen, und kann dies bestätigen, indem ich die Zeile "# PasswordAuthentication yes" auskommentiere (und den Wert auf "no" setze), die nur bei einem Neustart des sshd-Dienstes kennwortbasierte Anmeldungen blockiert .

Die einzigen Dienste, die "OpenSSH Server (Beta)" mir bietet, sind "sshd" und "ssh-agent". Neue VM, ohne Windows Developer Mode oder WSL / Bash unter Ubuntu aktiviert.

Joshua McKinnon
quelle