Windows 10 个 OpenSSH 授权密钥错误与 sshd
Windows 10 OpenSSH authorized keys error with sshd
在阅读了这里的精彩帖子后,我的第一个问题是:
我尝试使用 Mac 和 Windows 10 (20H2) 之间的密钥设置 ssh。
到目前为止我做了什么:
- 在 Mac 上生成了密钥,测试了自动登录树莓派的发布密钥,一切正常。
- 复制pub keys到win10,设置访问权限
https://askme4tech.com/how-install-and-configure-open-ssh-server-windows-10
- 将sshd_config改成这个
- 如果我尝试 ssh win10,我得到(使用 ssh -v)(只有最后几行):
...
debug1: Authentication succeeded (publickey).
Authenticated to 192.168.2.157 ([192.168.2.157]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
client_loop: send disconnect: Broken pipe
以防我在 Win10 上停止 sshd 并启动它而不是将其作为服务启动,只需使用
c:\>sshd.exe
一切正常。我在手动启动调试模式 sshd -d 时发现了这一点。
由于我对 Win10 的了解有限,我不知道在哪里查看或修复此问题,所以感谢您的提示!
马努
# 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 60
#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
in case I stop the sshd on Win10 and start it not as a service, just with c:>sshd.exe
- 在一种情况下,sshd 运行 作为一项服务,可能与 LocalSystem account
- 另一方面,从命令行,您正在 运行ning sshd 作为您(您的 Windows 帐户)。
环境会不一样,尤其是“authorized_keys
”文件。
如the documentation所述:
In Windows, sshd
reads configuration data from %programdata%\ssh\sshd_config
by default, or a different configuration file may be specified by launching sshd.exe
with the -f
parameter.
If the file is absent, sshd
generates one with the default configuration when the service is started.
在 运行将 ssh 守护程序作为 Windows 服务时激活日志,如 seen here:
Open an admin powershell prompt and run:
notepad C:\ProgramData\ssh\sshd_config
Find the "# Logging
" section and add in these 2 lines.
SyslogFacility LOCAL0
LogLevel DEBUG3
Run services.msc
and restart the service if its running, or start it if it's stopped.
Make sure it is set to run as the system account.
在阅读了这里的精彩帖子后,我的第一个问题是:
我尝试使用 Mac 和 Windows 10 (20H2) 之间的密钥设置 ssh。 到目前为止我做了什么:
- 在 Mac 上生成了密钥,测试了自动登录树莓派的发布密钥,一切正常。
- 复制pub keys到win10,设置访问权限 https://askme4tech.com/how-install-and-configure-open-ssh-server-windows-10
- 将sshd_config改成这个
- 如果我尝试 ssh win10,我得到(使用 ssh -v)(只有最后几行):
...
debug1: Authentication succeeded (publickey).
Authenticated to 192.168.2.157 ([192.168.2.157]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
client_loop: send disconnect: Broken pipe
以防我在 Win10 上停止 sshd 并启动它而不是将其作为服务启动,只需使用
c:\>sshd.exe
一切正常。我在手动启动调试模式 sshd -d 时发现了这一点。由于我对 Win10 的了解有限,我不知道在哪里查看或修复此问题,所以感谢您的提示!
马努
# 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 60
#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
in case I stop the sshd on Win10 and start it not as a service, just with c:>sshd.exe
- 在一种情况下,sshd 运行 作为一项服务,可能与 LocalSystem account
- 另一方面,从命令行,您正在 运行ning sshd 作为您(您的 Windows 帐户)。
环境会不一样,尤其是“authorized_keys
”文件。
如the documentation所述:
In Windows,
sshd
reads configuration data from%programdata%\ssh\sshd_config
by default, or a different configuration file may be specified by launchingsshd.exe
with the-f
parameter.
If the file is absent,sshd
generates one with the default configuration when the service is started.
在 运行将 ssh 守护程序作为 Windows 服务时激活日志,如 seen here:
Open an admin powershell prompt and run:
notepad C:\ProgramData\ssh\sshd_config
Find the "
# Logging
" section and add in these 2 lines.SyslogFacility LOCAL0 LogLevel DEBUG3
Run
services.msc
and restart the service if its running, or start it if it's stopped.
Make sure it is set to run as the system account.