Возможно, поддержка GitHub для ключей развертывания - это то, что вы ищете?Чтобы процитировать эту страницу:
Когда мне следует использовать ключ развертывания?
Простой, когда у вас есть сервер, которому требуется доступ с разгрузкой для одного частного репо,Этот ключ прикрепляется непосредственно к хранилищу, а не к личной учетной записи пользователя.
Если это то, что вы уже пытаетесь, и это не работает, вы можете обновить свой вопрос с более подробной информацией.используемых URL-адресов, имен и местоположений файлов ключей и т. д.
Теперь о технической части: как использовать ключ SSH с Jenkins?
Если у вас естьскажем, пользователь jenkins
unix, вы можете сохранить свой ключ развертывания в ~/.ssh/id_rsa
.Когда Jenkins пытается клонировать репо через ssh, он пытается использовать этот ключ.
В некоторых настройках вы не можете запустить Jenkins как собственную учетную запись пользователя и, возможно, также не можете использовать расположение ключа ssh по умолчанию ~/.ssh/id_rsa
.В таких случаях вы можете создать ключ в другом месте, например, ~/.ssh/deploy_key
, и настроить ssh
, чтобы использовать его с записью в ~/.ssh/config
:
Host github-deploy-myproject
HostName github.com
User git
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yes
Поскольку все, что вы аутентифицируете для всехРепозитории Github, использующие git@github.com
, и вы не хотите, чтобы вышеуказанный ключ использовался для всех ваших подключений к Github, мы создали псевдоним хоста github-deploy-myproject .URL-адрес вашего клона теперь становится
git clone github-deploy-myproject:myuser/myproject
, и это также то, что вы указали как URL хранилища в Jenkins.
(Обратите внимание, что вы должны не поместите ssh: // впереди, чтобы это работало.)