Git: git clone — fatal: unable to fork и RSA key fingerprint

Автор: | 10/23/2020
 

Имеется Docker-образ с установленным Git.

Задача — во время запуска контейнера склонировать в него репозиторий.

git clone — fatal: unable to fork

Во время попытки выполнения git clone в Docker-контейнере — получаем ошибку «unable to fork«:

/ # git clone git@github.com:projectname/backend-services.git
Cloning into 'backend-services'...
fatal: unable to fork

Причина — тут git для аутентификации использует SSH (git@github.com), которого нет в системе:

/ # ssh
sh: ssh: not found

Устанавливаем:

/ # apk update
/ # apk add openssh

The authenticity of host ‘github.com’ can’t be established

Вторая проблема при автоматизации git clone — запрос на подтверждение хоста:

The authenticity of host ‘github.com (140.82.121.4)’ can’t be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

Что бы решить её — надо добавить публичный ключ хоста github.com в ~/.ssh/known_hosts.

Используем ssh-keyscan:

/ # ssh-keyscan github.com >> ~/.ssh/known_hosts
github.com:22 SSH-2.0-babeld-1a846ed2
github.com:22 SSH-2.0-babeld-1a846ed2
github.com:22 SSH-2.0-babeld-1a846ed2

И клонируем:

/ # git clone git@github.com:projectname/backend-services.git
...
remote: Total 5115 (delta 96), reused 169 (delta 56), pack-reused 4871
Receiving objects: 100% (5115/5115), 846.55 KiB | 3.00 MiB/s, done.
Resolving deltas: 100% (2826/2826), done.

Готово.