
Мне удалось установить и настроить 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
Что я упускаю?
решение1
Если имя файла на самом деле ~/.ssh/authorized_Keys
, то вам нужно сделать букву K в имени файла строчной.
Если это не то, попробуйте сделать это ssh -v
с системой. Это должно дать вам больше информации.
решение2
Это может быть вызвано тем, что переменная среды HOME не установлена. Каков результат echo $HOME
? В какой полный путь ~/.ssh/authorized_Keys
на самом деле разрешается?
Кроме того, я считаю, что имя файла authorized_keys должно быть полностью строчными буквами.
И последнее, похоже, есть какие-то странные проблемы с правами доступа в cygwin. Попробуйте установить права доступа 600 (не 700) для каталога .ssh и его содержимого. Если это не сработает, я нашел несколькостарый пост в списке рассылки cygwinгде владельцем каталога .ssh и всех файлов внутри по какой-то причине должен был быть SYSTEM.SYSTEM.
Если все это не работает, проверьте журнал событий Windows. Я полагаю, что по умолчанию sshd cygwin регистрируется там, а не в sshd.log
(хотя я не знаю, зачем он создает файл журнала в этом случае).
решение3
Я исправил эту проблему, 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