:blobcatfacepalm: (1/2) Мне было понравилось пользоваться в #Windows OpenSSH-клиентом, который теперь можно поставить прямо из системного "optional features".
Ну и чтобы подёргивать свой основной комп по разным мелочам, что хотелось делать довольно часто, я решил поставить и SSH-сервер тоже, как следует заперев на ключи, никаких паролей.
Сначала выяснилось, что если пользователь администратор системы, то для входа за него мало добавить публичный ключ в ~/.ssh/authorized_keys, надо ещё и в C:\Program Data\ssh\administrators_authorized_keys — или убрать соответствующую директиву в конце конфига, лежащего по соседству.
Ладно. Это решено.
Спустя месяц этот sshd… помер. И больше не стартовал. Ни сообщений, ни записей в файлах логов, ни в логах событий системы, ничего, просто циклически перезапускался. После переустановки (полной, как мне казалось) поменялось только сообщение об ошибке при старте службы: "Process terminated unexpectedly" — это я уже знаю, спасибо!
(2/2) Оказывается, при установке OpenSSH с гитхаба[1] (!!!) в C:\Program FIles\
OpenSSH имеется скриптик, проверяющий ожидаемые разрешения для файлов и вправляющий на место лишние или недостающие. При запуске оного оказалось, что к конфигу C:\ProgramData\ssh\sshd_config был доступ… у меня. Это ему и не нравилось.
Вопросы "почему раньше его это устраивало" (месяц он проработал!), "почему в сообщениях об ошибке это не написать" (м?!), "как я должен был узнать о решении" (М?!?!) и "почему при ручном старте работало" (я запускал его из админского pwsh, без службы, и успешно соединялся) останутся тайной. ._.
[1]: https://github.com/PowerShell/Win32-OpenSSH
(2/2) Оказывается, при установке OpenSSH с гитхаба[1] (!!!) в C:\Program FIles\
OpenSSH имеется скриптик, проверяющий ожидаемые разрешения для файлов и вправляющий на место лишние или недостающие. При запуске оного оказалось, что к конфигу C:\ProgramData\ssh\sshd_config был доступ… у меня. Это ему и не нравилось.