在 Windows 中启动 OpenSSH 服务器并启用调试消息(-d)

在 Windows 中启动 OpenSSH 服务器并启用调试消息(-d)

我在尝试使OpenSSH serverWindows 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 工作正常,但作为服务启动时则不行),只需确保该服务以您的帐户而不是本地系统身份登录。

  1. 打开“服务”。
  2. 右键单击 sshd->属性。
  3. 转到“登录”选项卡,然后单击“此帐户”-> 浏览...
  4. 在文本框中输入您的用户名,然后单击“检查姓名”。您可能需要单击“高级...”才能在那里找到它。
  5. 正确配置帐户后,右键单击 sshd 并重新启动服务。

相关内容