(РЕДАКТИРОВАТЬ) Эта проблема возникла также на моем ноутбуке с использованием root и моего пользователя, который мог получить приветствие при попытке ssh с пользователем git. Затем попробовал доступную пьесу, и она тоже вызвала ошибки для репо. Пробовал еще один, и тот клонирует безупречно. Таким образом, проблема не в git, docker или ssh, а в конфигурации gitlab.
В Dockerfile я пытаюсь cотдельные частные репозитории, размещенные на сервере компании, на котором запущен gitlab, и настроены с нестандартным портом ssh.
Это то, что я ожидал запустить (вместе с некоторыми параметрами в файле конфигурации ssh)
RUN git clone git@companyname.ddns.net:GroupName/repo_name.git
Вещи, которые я уже проверил:
Пробовал с ssh-agent и вроде нормально (хотя я указываю файл в конфигурации, и он мне не нужен)
Identity added: /opt/.ssh/id_rsa (/opt/.ssh/id_rsa)
В ~ / .ssh / config есть следующее:
Host *
StrictHostKeyChecking no
PubkeyAcceptedKeyTypes +ssh-rsa
PasswordAuthentication no
User git
ForwardAgent yes
Identityfile /opt/.ssh/id_rsa # /opt is the home of the user RUNning the command in docker
port 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
Где ~/.ssh/config
? Сборки Docker выполняются с правами root, поэтому конфигурация должна быть в /root/.ssh/config