2

Я только что установил новую установку MinGW в Windows 7 64bit, используя Установщик графического интерфейса пользователя (рекомендуемый подход), следуя приведенным здесь инструкциям и сохраняя параметры по умолчанию (т.е. установку в C:\MinGW) - надеюсь, не пропустив ни одного шага и не испортив вещи в любом случае.

Однако при выполнении команды ssh я получаю следующую ошибку:

C:\Users\myusername> ssh username @ host
Не удалось создать каталог '/home/myusername/.ssh'.
Подлинность хоста ' host (host-ip)' не может быть установлена.
Отпечаток ключа RSA - это отпечаток пальца.
Вы уверены, что хотите продолжить подключение (да /нет)? да
Не удалось добавить хост в список известных хостов (/home/myusername/.ssh/known_hosts).

Итак, я в основном должен подтверждать соединение каждый раз.
Почему это происходит и как мне это исправить?

4 ответа4

2

После некоторых проб и ошибок я нашел решение проблемы.

Автоматизированное решение (для поспешных)

  1. Перейдите в (ваш-MinGW-каталог-установки)\msys\1.0.
    (в моем случае, который также используется по умолчанию, это будет C:\MinGW\msys\1.0).
  2. Запустите msys.bat.

Это запустит оболочку MinGW, которая создаст путь
(Ваш-MinGW-установка-каталог)\ MSYS \ 1,0 \ главная \(ваш-имя пользователя)
автоматически и SSH теперь должен работать просто отлично.


Ручное решение (в основном создайте путь, необходимый вручную):

  1. Перейдите в (ваш-MinGW-каталог-установки)\msys\1.0.
  2. Создайте домашний каталог.
  3. Внутри домашнего каталога создайте каталог с тем же именем, что и ваше имя пользователя.

Итак, теперь путь
(Ваш-MinGW-установка-каталог)\ MSYS \ 1,0 \ главная \(ваш-имя пользователя)
доступен и SSH должен работать просто отлично.


Вот что вы должны получить, если все прошло хорошо:

C:\Users\myusername> ssh username @ host
Подлинность хоста ' host (host-ip) ' не может быть установлена.
Отпечаток ключа RSA - это отпечаток пальца.
Вы уверены, что хотите продолжить подключение (да / нет)? да
Предупреждение. Постоянно добавлен « host, host-ip » (RSA) в список известных хостов.

Заметка
Поскольку оболочка MinGW может создать необходимый путь (без каких-либо проблем с Windows UAC), я думаю, это не имеет никакого отношения к разрешениям. Вероятно, это упущение установки MinGW.

0

Как включить SSH в Windows, чтобы обновить мой файл known_hosts чтобы мне не всегда предлагали

Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts 
(/home/myusername/.ssh/known_hosts).

Я потратил весь день, пытаясь выяснить это для git-bash для Windows (который, я считаю, использует mingw64, который я считаю потомком msys). Я уверен, что это ошибка разрешения, но я не смог найти ничего, в котором указано, как изменить разрешения Unix (например, chmod xxx ...) для папки или файла, которые действительно контролируются Windows. Ничто из следующего не сработало:

  • Создание папки ~/.ssh в домашнем каталоге моего пользователя Windows (cd ~ --> C:\User\username)
  • Создание папки /home/username/.ssh в корневом каталоге git-bash (cd / --> C:\Program Files\Git)
  • Создание файла .ssh/known_hosts в обоих местах и изменение разрешений Windows на полный доступ

Это сработало:

  • Изменение строки в файле C:\Program Files\Git\etc\nsswitch.conf:

    From: db_home: env windows cygwin desc
      To: db_home:     windows cygwin desc
    

Зачем??? Я понятия не имею!!

0

Для тех, кто использует msys2 и имеет ту же ошибку:

Измените строку в файле /etc/nsswitch.conf на:

db_home: windows cygwin desc

(Из этого ответа)

0

Вручную добавьте ключ rsa в файл .ssh/known_hosts

Не уверен, почему это происходит, я думаю, проблема с разрешением, если он не может даже создать файл в первую очередь

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .