我在尝试使OpenSSH server
Windows 10 附带的 正常工作时遇到了一个非常奇怪的问题。基本上,如果我通过运行 手动启动服务C:\Windows\System32\OpenSSH\sshd.exe
,一切都会正常工作,但是当我通过 Windows GUI 或从 Powershell 启动服务时Start-service sshd
,我无法连接(我收到公钥被拒绝 - 我已在配置文件中禁用密码登录,因此问题可能是尝试读取文件时出现权限问题authorized_keys
)。
我希望通过阅读sshd
守护进程的调试消息(即通过手动启动时获得的消息)来更好地了解正在发生的事情-d
,但即使我向 Windows GUI 添加允许指定服务启动参数的选项,我也不确定应该在哪里阅读这些消息(即事件查看器不包含这些消息)。如果有一种方法可以将启动参数添加到powershell 命令并在 powershell 会话中读取这些消息,-d
那就太好了……有什么想法吗?Start-service sshd
答案1
Windows OpenSSH 服务器默认记录到事件日志中。您应该查看“应用程序和服务日志”->“OpenSSH”下的“事件日志查看器”。管理日志显示错误,操作日志显示信息性消息。
OpenSSH 日志记录由您的文件控制C:\ProgramData\ssh\sshd_config
。该条目SyslogFacility
决定日志位置。
我从这里得到了答案:https://github.com/PowerShell/Win32-OpenSSH/wiki/Logging-Facilities。
authorized_keys
事件日志可能会遗漏一些额外的行,否则这些行会显示在日志文件中(例如,忽略原因)。要查看它们,请编辑C:\ProgramData\ssh\sshd_config
(例如,以管理员身份运行 notepad.exe),然后设置:
SyslogFacility LOCAL0
LogLevel Debug3
重新启动 OpenSSH SSH 服务器服务并期望日志出现在C:\ProgramData\ssh\logs\sshd.log
答案2
如果有人仍在尝试解决问题中描述的特定底层问题(当我启动它时 SSHD 工作正常,但作为服务启动时则不行),只需确保该服务以您的帐户而不是本地系统身份登录。
- 打开“服务”。
- 右键单击 sshd->属性。
- 转到“登录”选项卡,然后单击“此帐户”-> 浏览...
- 在文本框中输入您的用户名,然后单击“检查姓名”。您可能需要单击“高级...”才能在那里找到它。
- 正确配置帐户后,右键单击 sshd 并重新启动服务。