gitでcloneできない、ssh-addできない等($`ssh-agent -s`実行以外の問題)

Pocket

結論から言うと、「鍵は実行ユーザーのホームディレクトリに置きましょう」というだけの話。

以下の書籍でjenkinsを勉強しているのですが、Git利用のための「SSH鍵の設定」の項目があっさり4行で終了してます。

GitHubのサイト等の方法を参考に対応しましたが、表題の通りエラーが出て進まない。

以下のエラーメッセージで検索しまくりましたが、解決法見つからず。
・「Permission denied (publickey).」、「Please make sure you have the correct access rights and the repository exists.」、「Could not open a connection to your authentication agent.」

初心者的問題だったので、該当するケースが見つけられずハマりました。

【症状】
・gitでリポジトリをcloneしようとした際に以下のエラーが出る。

git clone git@github.com:ユーザー名/リポジトリ
Cloning into ''...
Permission denied (publickey).
fatal:Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.

ネットで調べるとSSHの連携で以下の作業が必要な様子。
①秘密鍵/公開鍵の作成
②公開鍵をGitHubサイト上に登録

対応したが、解決しない。
更に調べると、あらかじめ秘密鍵を登録しておいてgitでcloneするとのこと。

しかし以下のエラーが発生。

ssh-add /var/lib/jenkins/.ssh/id_rsa(秘密鍵のフルパス)
Could not open a connection to your authentication agent.

またまた調べると、今度は「$eval `ssh-agent -s`」など実行してから実行するらしいとのGitHub公式説明。
※サイト:https://help.github.com/articles/generating-ssh-keys/

実行したけど、相変わらず「Could not open …」のエラーが起きる。

ここから数日ハマり、ネットはいくら調べても「$eval `ssh-agent -s`」を実行しろという記事しか見つからず・・・。
しばらくごちゃごちゃやっているうち、ふと気づきました。

そういえば鍵情報ってユーザーのホームに置かないとダメじゃない?

jenkinsと連携するという変な思い込みで、鍵は「/var/lib/jenkins/.ssh」の下に置いていた・・・sudoして、フルパスでいけばいいものだと思っていました。
(ホーム以外の場所に置いてもいける方法あるのかもしれませんが、分かりません(知識不足))

そして鍵を現在使っているユーザーのホームディレクトリにコピー。

sudo cp /var/lib/jenkins/.ssh/id_rsa ~/.ssh/

鍵の登録。

eval $`ssh-agent -s`
ssh-add ~/.ssh/id_rsa

改めてclone。

git clone git@github.com:ユーザー名/リポジトリ
Cloning info 'リポジトリ名'...
remote:Counting objects:9146, done.
...
...
Checking connectivity... done.

うまくいった!!

基本的な知識の不足ですね。

gitのSSH鍵登録方法は時間があるときに画像付けてまとめます。
→jenkinsのページ(Jenkins、はじめの一歩(~GitHub/SSH鍵))にまとめました

 

広告

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です