4

Я пытаюсь перейти от использования Powershell к Bash в Windows (подсистема Windows для Linux или WSL). В целях использования GIT я настроил мои ключи SSH в C:/Users/User/.ssh . Затем я вошел в Bash и создал символическую ссылку ln -s /mnt/c/Users/User/.ssh/ ~/.ssh/ , чтобы (теоретически) использовать одни и те же ключи ssh из обеих оболочек.

Однако, когда я запускаю git, я всегда получаю сообщение об ошибке: Bad owner or permissions on /home/user/.ssh/config . Что я делаю неправильно?

2 ответа2

3

Вам необходимо смонтировать файловую систему Windows, используя файловую систему DrvFS с опцией metadata которая позволяет разрешениям Linux сосуществовать с файлами Windows, сохраняя их в метаданных файла.

sudo umount /mnt/c sudo mount -t drvfs C: /mnt/c -o metadata

Это позволит вам использовать ваши ключи SSH в обеих операционных системах.

Дополнительная информация:https://blogs.msdn.microsoft.com/commandline/2018/01/12/chmod-chown-wsl-improvements/

И еще больше чтения о том, как настроить WSL для применения этого параметра при каждом запуске:https://blogs.msdn.microsoft.com/commandline/2018/02/07/automatics-configuring-wsl/

2

Что я делаю неправильно?

SSH требует вменяемых разрешений для закрытых ключей, и вы не можете этого достичь, используя символическую ссылку на другую файловую систему (окна). Страница руководства по ssh объясняет это довольно четко:

~/.ssh/id_rsa

Содержит закрытый ключ для аутентификации. Эти файлы содержат конфиденциальные данные и должны быть доступны для чтения пользователем, но не доступны для других (чтение / запись / выполнение). ssh просто проигнорирует файл закрытого ключа, если он доступен другим.

Скорее всего, вы можете скопировать закрытые ключи и установить соответствующие разрешения, если хотите "поделиться ключами".

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