Я пытался разобраться Could not create directory
проблема с OpenSSH, установленным через Cygwin, и попробовал каждый решение Я могу найти в Интернете, но никто из них не работает ...
Я установил Cygwin, похоже, работает. Я установил openSSH, который также, кажется, работает (я могу ssh на другие машины).
Я положил папку Cygwin bin в path
так что я могу бежать ssh
из командной строки, и это тоже работает. Но каждый раз, когда я запускаю его, он выдает ошибку:
Could not create directory '/home/will/.ssh'
The authenticity of host 'blah (111.222.333.444)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no)?
Почему он пытается использовать этот каталог? Я установил env. переменная HOME
в %USERPROFILE%
, он печатает правильное местоположение, когда я повторяю его, и я также создал .ssh
Дир и сделал ssh-keygen
вещь там.
Я где-то читал, что мне нужно заменить home/will
в cygwin/etc/passwd
, но у меня нет этого файла. И если я использую mkpasswd -l
чтобы сгенерировать его, он не включает меня как пользователя, поэтому я ничего не могу заменить. Я действительно в тупике.
Что мне нужно сделать / установить, чтобы сделать эту работу?
mkpasswd
Итак, как я могу отредактировать домашний каталог, предоставленный там?Ответы:
Если вы загляните внутрь "/ usr / bin / ssh-user-config", вы заметите совет:
Не касаясь пользовательской базы данных Windows, самый быстрый способ определить другой дом:
скорее всего "будет". Поскольку вы пользователь локальный или доменный.
И измените последнее, но одно поле "/ home / will" на нужное вам значение.
Дополнительное чтение для пользователей Windows и Cygwin:
источник
Вы можете отредактировать / etc / ssh / ssh_config и добавить следующие свойства:
Это все еще печатает ошибку
Could not create directory '/home/username/.ssh'.
Но кроме этого все работает. Кстати, я использую msys2, но теоретически это должно работать и для вас.источник
Спасибо matzeri за подсказку, чтобы посмотреть в / usr / bin / ssh-user-config. Заглянув туда, я понял, что скрипт получает домашний каталог через вызов
getent passwd
, Когда я запускаю его в своей системе, я вижу, что домашний каталог, который он ищет, находится в / home (что в файловой системе Windows переводится в C: \ Cygwin64 \ home \ myusername)Мой фактический домашний каталог Windows (% USERDIR%) - это C: \ Users \ myusername, которое Cygwin видит как / cygdrive / c / Users / myusername.
Я обнаружил, что в качестве альтернативы созданию файла / etc / passwd я могу символическую ссылку на мой домашний каталог Windows на местоположение, которое хочет Cygwin:
После этого у SSH нет проблем с чтением каталога .ssh в моем домашнем каталоге Windows.
источник