リポジトリ
Jenkinsについて右も左もわからず、Udemyのとあるコースを履修していた中で起きたできごと。
プライベートリポジトリのクローンがどうしてもできずハマったので、メモ程度に紹介。
リポジトリ : Command "git ls-remote -h -- git@github.com:XXX/xxx.git HEAD" returned status code 128:
stdout:
stderr: No ED25519 host key is known for github.com and you have requested strict checking.
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
との接続に失敗しました。
サーバ上で直接リポジトリのクローンはできた。
なので、登録した認証鍵情報に誤りがあることはなさそう。
vm:~$ git clone git@github.com:XXX/xxx.git
Cloning into 'xxx'...
remote: Enumerating objects: 78, done.
remote: Counting objects: 100% (78/78), done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 78 (delta 32), reused 62 (delta 19), pack-reused 0 (from 0)
Receiving objects: 100% (78/78), 13.84 KiB | 13.84 MiB/s, done.
Resolving deltas: 100% (32/32), done.
azureuser@vm-otsuka01:~$ ll
drwxrwxr-x 4 user user 4096 Jan 23 07:58 xxx/
vm:~$ cat ~/.ssh/config
Host github.com
HostName github.com
IdentityFile ~/.ssh/jenkins_key
User git
port 22
いろいろググってみると、known_hostsにgithub.comの情報を書き込むことで対処ができそうとのことだった。
やったこと
/var/lib/jenkins/
に.ssh/knowns_hosts
を作成
$ sudo mkdir -p /var/lib/jenkins/.ssh
$ sudo touch /var/lib/jenkins/.ssh/known_hosts
$ sudo chown jenkins:jenkins /var/lib/jenkins/.ssh/known_hosts
$ sudo chmod 600 /var/lib/jenkins/.ssh/known_hosts
github.comのSSHホストキーを取得して貼り付ける
$ ssh-keyscan -t rsa,ed25519 github.com | sudo tee -a /var/lib/jenkins/.ssh/known_hosts
クローンはできたがジョブが最後まで実行されない
Jenkinsユーザが固有の認証情報を持つ必要があるらしく、別のエラーが発生
git@github.com: Permission denied (publickey).
/var/lib/jenkins/.ssh
にjenkinsユーザ用の認証鍵を配置し、
その情報をgithubにアップロードすることでエラーは解消
(若干解せないのでもう少しエラーについて調べたいところ。。。)
$ sudo -u jenkins ssh-keygen -t ed25519 -C "jenkins@XXX"
$ sudo cat /var/lib/jenkins/.ssh/id_ed25519.pub ### githubにはりつ