Forse il supporto di GitHub per le chiavi di distribuzione è quello che stai cercando? Per citare quella pagina:
Quando dovrei usare una chiave di distribuzione?
Semplice, quando si dispone di un server che necessita dell'accesso pull a un singolo repository privato. Questa chiave è collegata direttamente al repository anziché a un account utente personale.
Se è quello che stai già provando e non funziona, potresti voler aggiornare la tua domanda con maggiori dettagli sugli URL utilizzati, i nomi e la posizione dei file chiave, ecc.
Ora per la parte tecnica: come utilizzare la chiave SSH con Jenkins?
Se si dispone, ad esempio, di un jenkins
utente unix, è possibile archiviare la chiave di distribuzione ~/.ssh/id_rsa
. Quando Jenkins tenta di clonare il repository tramite ssh, proverà a utilizzare quella chiave.
In alcune configurazioni, non è possibile eseguire Jenkins come proprio account utente e probabilmente non è possibile utilizzare la posizione della chiave SSH predefinita ~/.ssh/id_rsa
. In tali casi, è possibile creare una chiave in una posizione diversa, ad esempio ~/.ssh/deploy_key
, e configurarla ssh
per usarla con una voce in ~/.ssh/config
:
Host github-deploy-myproject
HostName github.com
User git
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yes
Poiché tutto ciò che autentichi su tutti i repository Github utilizzando git@github.com
e non vuoi che la chiave sopra sia utilizzata per tutte le tue connessioni a Github, abbiamo creato un alias host github-deploy-myproject . L'URL del clone ora diventa
git clone github-deploy-myproject:myuser/myproject
e questo è anche ciò che metti come URL repository in Jenkins.
(Si noti che è necessario non mettere ssh: // di fronte in modo che questo lavoro.)