5

Я использую VM VirtualBox с Debian в качестве гостевой ОС. Чтобы разделить ключи SSH между хостом Windows и гостевой системой Linux, я определил папку ~/.ssh как общую папку. Булочка, сейчас я получаю ошибку:

# git clone git@github.com-user:user/project.git
Cloning into project...
Bad owner or permissions on /root/.ssh/config
fatal: The remote end hung up unexpectedly

Обычно для решения этой проблемы достаточно установить более строгие разрешения для ~/.ssh . Но в этом случае это невозможно, так как это общая папка.

Есть ли другое решение / обходной путь для этой проблемы?

Спасибо

4 ответа4

4

Правильное решение - перестать использовать root для проверки git-репозитория. Предоставьте каждому пользователю собственную учетную запись и держите разрешения достаточно жестко, чтобы безопасность не была скомпрометирована.

Другим решением будет использование одного из веб-серверов git, а не сервера SSH. Я никогда не использовал ни одного из них, поэтому я не могу дать вам много советов там.

4

Отказ от ответственности: теперь я считаю, что это проверка прав доступа клиентом git, а не сервером ssh. Это сделало бы этот ответ неверным. Я оставляю здесь свой ответ, чтобы нам больше не приходилось перебирать тему.

Я действительно не хочу отвечать на это, но кто-то опубликует ответ, который вы ищете, в конце концов, и это может быть с соответствующими оговорками.

  1. Не делай этого. Все остальные уводят вас от этого ответа по какой-то причине. Это ужасная безопасность.
  2. Нет, правда. Не делай этого. Как бы удобно это ни казалось, это идет вразрез с некоторыми из самых базовых соглашений по безопасности, которые считаются само собой разумеющимися в индустрии Unix. Вы потеряете большое уважение со стороны тех, кто в вашей профессиональной жизни, если они обнаружат, что вы сделали это, даже если это случайно в вашей собственной системе.
  3. Вы просите быть в собственности.
  4. Если вы все еще намерены пройти через это ...

Ответ в man sshd_config , вы ищете StrictModes . Он не может быть настроен для каждого пользователя; это очень намеренно

1

Решение, которое позволит вам сохранить /root в качестве «общей папки», будет состоять в том, чтобы использовать AuthorizedKeysFile в вашем файле sshd_config и установить его для получения ваших авторизованных ключей из некоторого другого каталога.

0

Я смонтировал свою общую папку с помощью этой команды (сохраненной в /etc/rc.local для автоматического монтирования папки при запуске системы):

mount -t vboxsf -o uid=1000,gid=1000 sshkeys /root/.ssh

Теперь я изменил пользователя, группу пользователей и права доступа к смонтированной папке в команде mounto:

mount -t vboxsf -o uid=0,gid=0,umask=077 sshkeys /root/.ssh

Оно работает.

PS Для всех, кто принимал участие в этой дискуссии:

Поскольку тема стала немного хаотичной, я хотел бы подвести итог:

Сначала у меня была проблема, что я не мог использовать свои ключи, когда они пришли из общей папки (Ошибка Bad owner or permissions... ошибка). Следствием для меня было то, что существует два способа: (а) либо установить пользователя, группу и права доступа к папке, как клиенту SSH (?) необходимо или (б) заставить его игнорировать свои ограничения прав доступа. Так как я не мог применить chown/chmod к своей общей папке и думал, что изменить права доступа к ней было невозможно, я увидел (b) последнюю возможность решить проблему - и изменил вопрос /заголовок. Это была ошибка, и я только что вернул это изменение.

К дискуссии о безопасности: я работаю как root (на моей виртуальной машине!) и это смертельный грех для каждого, кто заботится о безопасности. На самом деле я также думаю, что обычно не следует входить в систему как root. Но я придерживаюсь мнения, что это не относится к случаю виртуальной машины dev. Во всяком случае - это оффтоп, поскольку он не имеет отношения к проблеме, которую я описал. Эта проблема может возникнуть для каждого пользователя каждой группы пользователей.

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