5

Я пытался использовать экземпляр ssh, и я получил эту ошибку:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for 'privkey.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "privkey.pem": bad permissions
Permission denied (publickey).

Что странно. Я попытался изменить разрешение с помощью команды 'chmod', но это не помогло. У bash создалось впечатление, что команда зарегистрирована, но я проверил права доступа к ключу, и он все еще был на 777. Я открыл свой git bash и смог без проблем войти в свой экземпляр ssh, а права доступа не были 777.

3 ответа3

10

Если вы ссылаетесь на файлы в файловой системе Windows, по умолчанию они не сохраняют разрешения Linux. Тем не менее, есть способ включить это. Отредактируйте или создайте (используя sudo) /etc/wsl.conf и добавьте следующее:

[automount]
options = "metadata"

Завершите работу всех экземпляров WSL и перезапустите экземпляр, и все изменения chmod теперь будут сохранены.

8

Закрытый ключ в вашей файловой системе Windows (в /mnt /)? Вы не можете изменять права доступа к файлам в файловой системе Windows, используя chmod в Bash в Ubuntu в Windows. Вам нужно будет скопировать закрытый ключ в ваш домашний каталог WSL (~) и сделать это там.

Некоторые обсуждения здесь: https://github.com/Microsoft/WSL/issues/81

1

Правильный способ справиться с этим:

  1. Создайте файл с именем /etc/wsl.conf и отредактируйте его так, чтобы он содержал следующее:
    [automount]
    enabled = true
    root = /mnt/
    options = "metadata,umask=22,fmask=11"

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

  1. Закройте все открытые терминалы WSL, затем откройте новый.

Теперь все готово, изменение прав доступа к файлу в окнах из /mnt /c / будет правильно отражено в подсистеме Linux через функцию метаданных WSL.

Конфигурация WSL всегда будет правильно подключаться при запуске WSL.

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