Доступ к нескольким учетным записям GitLab через SSH - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть несколько учетных записей GitLab, связанных с различными репозиториями на Gitlab.com. Я пытаюсь подключить эти учетные записи к GitLab, чтобы я мог клонировать, извлекать и перемещать в репозитории. Вот что я сделал до сих пор:

  1. Сгенерированные ключи SSH для обеих учетных записей (id-rsa-accountA, id-rsa-accountB)

  2. Добавлены ключи с использованием ssh-add

  3. Добавлены ключи в .ssh / config следующим образом: IdentityFile /home//.ssh/id_rsa_accountaA

  4. Добавленооткрытые ключи SSH для соответствующих учетных записей GitLab

Теперь, когда я пытаюсь клонировать репо (из учетной записи A или B), я получаю следующую ошибку:

git clone git@gitlab.com:<account-name>/kashif-repo.git

Клонирование в 'kashif-repo' ...

Плохой владелец или разрешения на /home/kashif/.ssh/config

неустранимо: не удалось прочитать из удаленного хранилища.

Убедитесь, что у вас есть правильные права доступа и существует хранилище.

Я могу получить доступ к репозиториям через Https, но SSH не работает.

Обновление:

Запустил git clone с sudo:

sudo git clone git@hostA:<account-name>/kashif-repo.git

Запуск git-клона с удаленным sudoошибка разрешения. Теперь ошибка изменилась на:

ssh: Не удалось разрешить имя хоста hostA: Имя или служба не известны Неустранимо: Не удалось прочитать из удаленного хранилища.

Пожалуйста, убедитесь, что у вас есть правильные права доступа

Вот как выглядит .ssh / config:

  Host hostA
  User git
  HostName gitlab.com
  PreferredAuthentications publickey
  IdentifyFile ~/.ssh/id_rsa_hostA

1 Ответ

0 голосов
/ 03 ноября 2019

Сначала я бы сконцентрировался на этой проблеме

Bad owner or permissions on /home/kashif/.ssh/config

.

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

Например, если этот каталог ~/.ssh доступен для записи во всем мире, злоумышленник может заменить файл config впоместите под него любое количество собственных ключей SSH (или замените ваши). Поскольку конфигурация клиента SSH позволяет изменять практически любой аспект конфигурации для каждого хоста, включая перенаправление запросов (то есть вы делаете ssh hostA, но на самом деле клиент будет подключаться к hostB), атакованный может сделатьпрактически все, что вам нужно.

ОК, поэтому сделайте следующее:

  1. Убедитесь, что ваш домашний каталог имеет правильные разрешения.

    Это действительно зависит отОС, но в большинстве случаев это должно быть kashif:kashif 0755 или kashif:users 0755.

    В Ubuntu (и других Debianoids) это первое: каждый пользователь имеет свою собственную группу, созданную дляих, и эта группа устанавливается в качестве основной группы пользователя и имеет собственный домашний каталог.

  2. Убедитесь, что каталог ~/.ssh принадлежит kashif и имеет биты разрешений минимум 0755;иметь более жесткие разрешения, такие как 0700, вполне нормально, но на самом деле это не нужно.

  3. Убедитесь, что все файлы в этом каталоге принадлежат вам и не имеют разрешения на запись для всех и длявладеющая группа;ключи должны быть доступны для чтения только вам (владельцу).

    (Открытые части ключей - файлы, оканчивающиеся на .pub - могут быть прочитаны кем-либо, поскольку они не содержат каких-либо конфиденциальных данных.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...