Клонирование файла Docker из частного gitlab с помощью ssh и ключа развертывания

(EDIT) Эта проблема также возникала на моем ноутбуке с использованием root и моего пользователя, который мог получить приветствие при попытке ssh с пользователем git. Затем попробовал доступную пьесу, и она тоже вызвала ошибки для репо. Пробовал еще один, и тот клонировал безупречно. Таким образом, проблема не в git, docker или ssh, а в конфигурации gitlab.


В Dockerfile я пытаюсь c создать отдельные частные репозитории, размещенные на сервере компании, на котором запущен gitlab, и настроить с нестандартным портом ssh .

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

RUN git clone git@companyname.ddns.net:GroupName/repo_name.git

То, что я уже проверил:

  • В репозитории есть ключ развертывания, и он активен.
  • Автоматизируя с помощью Ansible вместо докера, он может подключаться и клонировать репозитории.
  • Ключ называется id_rsa, и он находится внутри ~ / .ssh /
  • Пробовал с ssh-agent и вроде нормально (хотя я указываю файл в конфигурации, и он мне не нужен)

     Идентификация добавлена: /opt/.ssh/id_rsa (/opt/.ssh/id_rsa) 
     
  • ~ / .ssh / config имеет следующее:

     Хост * 
    StrictHostKeyChecking no {{1 }} PubkeyAcceptedKeyTypes + ssh-rsa 
    PasswordAuthentication no 
    User git 
    ForwardAgent yes 
    Identityfile / opt /.ssh / id_rsa # / opt - это дом пользователя Запуск команды в докере 
    порт 22022 
     

Запуск из контейнера:

ssh -vT -i /opt/.ssh/id_rsa git@companyname.ddns.net:GroupName/repo_name.git

Получение результата

Добро пожаловать в GitLab , Аноним!

Но команда git clone получает:

Cloning into 'repo_name'...
GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights 
and the repository exists.
The command '/bin/sh -c git clone git@companyname.ddns.net:GroupName/repo_name.git;' returned a non-zero code: 128
1
задан 5 October 2017 в 19:30
1 ответ

Где находится ~ / .ssh / config ? Сборки Docker выполняются с правами root, поэтому конфигурация должна находиться в /root/.ssh/config

0
ответ дан 4 December 2019 в 04:34

Теги

Похожие вопросы