Мне удалось установить и настроить openssh на cygwin, и он работает нормально, но с одной проблемой: я не могу использовать аутентификацию с закрытым / открытым ключом, она просто не работает.
Я проделал те же шаги, что и в Linux, добавив свой ключ в ~/.ssh/authorized_Keys
но не подхватывает.
Также я проверил /var/log/sshd.log
но он пуст и имеет следующие права:
-rw-r--r-- 1 cyg_server None 0 Aug 21 12:53 sshd.log
drwx------+ 1 Administrator None 0 Aug 21 12:57 .ssh
-rw-r--r-- 1 Administrator None 395 Aug 21 12:57 authorized_hosts
Что мне не хватает?
Если имя файла действительно ~/.ssh/authorized_Keys
, то вам нужно ввести букву K в нижнем регистре в имени файла.
Если это не так, попробуйте сделать ssh -v
в систему. Это должно дать вам дополнительную информацию.
Это могло быть вызвано тем, что не задана переменная среды HOME. Каков результат echo $HOME
? К какому полному пути относится ~/.ssh/authorized_Keys
на самом деле решить?
Кроме того, я считаю, что имя файла authorized_keys должно быть в нижнем регистре.
И, наконец, кажется, что у cygwin есть некоторые странные проблемы с разрешениями. Попробуйте установить разрешения на 600 (не 700) для каталога .ssh и его содержимого. Если это не сработает, я нашел несколько старый пост в списке рассылки cygwin где владельцем каталога .ssh и всех файлов внутри по какой-то причине должен быть SYSTEM.SYSTEM.
Если все это не работает, проверьте журнал событий Windows. Я считаю, что по умолчанию cygwin sshd регистрирует там, а не в sshd.log
(хотя я не знаю, зачем в этом случае был создан файл журнала).
Я исправил эту проблему на Windows 10 1909
проверив журнал на Event Viewer -> Windows Logs -> Application -> sshd(Source column)
и установка прав собственности и разрешений home, .ssh and authorized_keys
файлы, как показано ниже
chown Gowtham:none ~/
chmod g-w ~/
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys