Być może obsługa GitHub dla kluczy wdrażania jest tym, czego szukasz? Aby zacytować tę stronę:
Kiedy należy używać klucza wdrażania?
To proste, gdy masz serwer, który wymaga dostępu do pojedynczego repozytorium prywatnego. Ten klucz jest dołączany bezpośrednio do repozytorium zamiast do osobistego konta użytkownika.
Jeśli tego już próbujesz i nie działa, możesz zaktualizować swoje pytanie, podając więcej szczegółów dotyczących używanych adresów URL, nazw i lokalizacji plików kluczy itp.
A teraz część techniczna: jak używać klucza SSH z Jenkinsem?
Jeśli masz, powiedzmy, jenkins
użytkownika systemu UNIX, możesz przechowywać klucz wdrożenia w ~/.ssh/id_rsa
. Kiedy Jenkins spróbuje sklonować repozytorium przez ssh, spróbuje użyć tego klucza.
W niektórych konfiguracjach nie można uruchomić Jenkinsa jako własnego konta użytkownika i prawdopodobnie nie można również użyć domyślnej lokalizacji klucza ssh ~/.ssh/id_rsa
. W takich przypadkach możesz utworzyć klucz w innej lokalizacji, np. ~/.ssh/deploy_key
I skonfigurować ssh
go tak, aby używał go z wpisem w ~/.ssh/config
:
Host github-deploy-myproject
HostName github.com
User git
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yes
Ponieważ wszyscy uwierzytelniacie się we wszystkich repozytoriach Github, używając git@github.com
i nie chcecie, aby powyższy klucz był używany do wszystkich połączeń z Github, utworzyliśmy alias hosta github-deploy-myproject . Twój sklonowany adres URL ma teraz postać
git clone github-deploy-myproject:myuser/myproject
i to również jest to, co umieszczasz jako adres URL repozytorium w Jenkins.
(Należy pamiętać, że trzeba nie umieścić ssh: // z przodu, aby to zadziałało).