Ich habe den OpenSSH-Server und -Client erfolgreich über den Abschnitt „Optionale Funktionen“ von Windows 10 eingerichtet.
Immer wenn ich versuche, mich beim Server anzumelden, werde ich nach einem Kennwort gefragt. Ich habe nur ein einziges Kennwort für meinen Windows 10-PC konfiguriert, und zwar das Kennwort meines Microsoft-Kontos. Aber der Server verweigert den Zugriff mit diesem Kennwort. Ich habe noch kein Kennwort für den SSH-Server eingerichtet.
Wie lautet das Standardkennwort für den Server?
Hier ist der Inhalt der sshd_config
Datei im %PROGRAMDATA%\ssh\
Ordner:
# 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
#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
Dies ist die Ausgabe von Get-NetFirewallRule -Name *ssh*
:
Name : OpenSSH-Server-In-TCP
DisplayName : OpenSSH SSH Server (sshd)
Description : Inbound rule for OpenSSH SSH Server (sshd)
DisplayGroup : OpenSSH Server
Group : OpenSSH Server
Enabled : True
Profile : Any
Platform : {}
Direction : Inbound
Action : Allow
EdgeTraversalPolicy : Block
LooseSourceMapping : False
LocalOnlyMapping : False
Owner :
PrimaryStatus : OK
Status : The rule was parsed successfully from the store. (65536)
EnforcementStatus : NotApplicable
PolicyStoreSource : PersistentStore
PolicyStoreSourceType : Local
Name : SshProxy-Service
DisplayName : SshProxy-Service-Private
Description : SSH Server Proxy Service
DisplayGroup : Ssh Server
Group : Ssh Server
Enabled : True
Profile : Private
Platform : {}
Direction : Inbound
Action : Allow
EdgeTraversalPolicy : Block
LooseSourceMapping : False
LocalOnlyMapping : False
Owner :
PrimaryStatus : OK
Status : The rule was parsed successfully from the store. (65536)
EnforcementStatus : NotApplicable
PolicyStoreSource : PersistentStore
PolicyStoreSourceType : Local
Name : SshProxy-Service-Domain
DisplayName : SshProxy-Service-Domain
Description : SSH Server Proxy Service
DisplayGroup : Ssh Server
Group : Ssh Server
Enabled : True
Profile : Domain
Platform : {}
Direction : Inbound
Action : Allow
EdgeTraversalPolicy : Block
LooseSourceMapping : False
LocalOnlyMapping : False
Owner :
PrimaryStatus : OK
Status : The rule was parsed successfully from the store. (65536)
EnforcementStatus : NotApplicable
PolicyStoreSource : PersistentStore
PolicyStoreSourceType : Local
Ausgabe von [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
:
<my_name>\USER
Antwort1
Ich habe noch kein Passwort für den SSH-Server eingerichtet. Wie lautet das Standardpasswort für den Server?
Es gibt keines.
Immer wenn ich versuche, mich beim Server anzumelden, werde ich nach einem Passwort gefragt. Ich habe für meinen Windows 10-PC nur ein einziges Passwort konfiguriert, und zwar das Passwort meines Microsoft-Kontos. Aber der Server verweigert den Zugriff mit diesem Passwort.
Sie versuchen, eine Verbindung mit dem falschen Benutzernamen herzustellen. Sie sollten ssh Machine_Name\Username@localhost
für die Verbindung mit dem Server verwenden.
Warum muss ich den \USER-Teil angeben?
Sie müssen explizit angeben, welchen Benutzernamen Sie verwenden möchten, um eine Verbindung zum OpenSSH-Server herzustellen. Sie haben auch angegeben, dass Sie die Syntax verwendet haben, ssh <my_name>@localhost
die angibt, dass der Benutzername der Name Ihres Computers und nicht Ihr tatsächlicher Benutzername ist.
Seit<my_name>
ist kein tatsächlicher Benutzername auf dem Computer, die Kennwortauthentifizierung schlug fehl, Sie müssen tatsächlich verwendenUsername
und geben Sie explizit an, dass es sich auf der Maschine befindetMachine_Name\Username
.
Die Ausgabe [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
gibt an, was verwendet werden soll.
Antwort2
Ein weiterer Grund, warum ein gültiger Benutzername und ein gültiges Passwort möglicherweise nicht akzeptiert werden, ist eine falsche Konfiguration der Shell.
Um welches es sich handelt, können Sie mit
reg query HKLM\SOFTWARE\OpenSSH /v DefaultShell
So stellen Sie es auf Powershell ein, wenn Sie es im Standardverzeichnis haben:
reg add HKLM\SOFTWARE\OpenSSH /v DefaultShell /d C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
Antwort3
Schreiben Sie
whoami
in die Eingabeaufforderung. Sie erhalten einen Text. Kopieren Sie den gesamten Text. Mit „gesamt“ meine ich „gesamt“. Nehmen wir für dieses Beispiel an, dass ichnick\hp
als Ausgabe Folgendes erhalten habe.Geben Sie nun in cmd ein
ssh nick\hp@localhost
und drücken Sie die Eingabetaste.Sie werden nach einem Kennwort gefragt. Geben Sie hier das Kennwort Ihres Microsoft-Kontos ein. Dann können Sie sich erfolgreich per SSH anmelden.
Antwort4
Ich hatte ein ähnliches Problem. Die SSH-Anmeldung funktionierte bis zu einem Tag normal. Ich bin mir nicht sicher, was genau passiert ist. Ich habe möglicherweise versucht, einen Windows-Ordner über Samba freizugeben und dabei einige OpenSSH-Einstellungen durcheinander zu bringen. Hier ist jedenfalls die Lösung:
Einen neuen Windows-Benutzer erstellen
Das war's. Ich kann mich mit dem neuen Konto normal anmelden. Es scheint, als hätte sich das SSH-Passwort für das alte Konto geändert, ohne dass ich etwas getan hätte.