Я создаю оснастку ROS с помощью плагина snapcraft catkin / catkin-tools в Ubuntu 18.04. Этот плагин имеет возможность определять файлы rosinstall для получения зависимостей пакета. Однако процесс сборки завершается с ошибкой «Permission denied (publickey)»:
Installing wstool...
Initializing workspace (if necessary)...
Merging /root/parts/workspace/src/snap/local/snap.rosinstall
Updating workspace...
The authenticity of host 'github.com (140.82.118.3)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Error updating workspace: Cloning into '/root/parts/workspace/src/src/catkin_simple'...
warning: templates not found /usr/share/git-core/templates
Warning: Permanently added 'github.com,140.82.118.3' (RSA) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
ERROR in config: Error processing 'catkin_simple' : [catkin_simple] Checkout of git@github.com:catkin/catkin_simple.git version None into /root/parts/workspace/src/src/catkin_simple failed.
В моем файле snap.rosinstall есть только плагин publi c catkin_simple:
- git:
local-name: catkin_simple
uri: git@github.com:catkin/catkin_simple.git
Часть "parts" моего snapcraft.yaml выглядит следующим образом:
parts:
workspace:
plugin: catkin-tools
source: .
rosinstall-files: [snap/local/snap.rosinstall]
catkin-packages: [catkin_simple]
Я уже пробовал разные подходы:
- Изменение на https приводит к ошибке:
warning: templates not found /usr/share/git-core/templates
fatal: Unable to find remote helper for 'https'
. Я не понимаю этого, так как это даже репозиторий c. - Я добавил ключ S SH с помощью sudo. И
ssh -T git@github.com
, и sudo ssh -T git@github.com
, и клонирование в целом работают нормально. - Я проверил, что папка
/usr/share/git-core/templates
существует, что было помечено как решение в некоторых других публикациях.
Единственное, что я могу себе представить, это то, что чего-то не хватает в этой виртуальной машине, запуск которой вначале происходит с помощью snapcraft. Однако, опять же, использование git в качестве источника в snapcraft.yaml (без rosinstall) работает нормально, что нелогично.
Надеюсь, что кто-то может добавить ясности здесь.