どうも、小田急電鉄初のITエンジニアXuです。
昨日、新しいサーバーを立てて、プロジェクトを作成してGitLabにプッシュしようとしたときに
git@gitlab.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
このようなエラーによりgit pushが出来なかった。
あれれと思い、sshで接続確認
~/.ssh$ ssh gitlab
Welcome to GitLab, @[user-name]!
Connection to gitlab.com closed.
普通につながるじゃん!
さて困ったなぁと思い、早速調査開始。
1.パーミッション変更
~/.ssh$ sudo chmod 600 git
結果:
ssh 〇
git clone ×
変化なし
2.IdentitiesOnly追加
Host gitlab
HostName gitlab.com
IdentityFile ~/.ssh/git
User git
#追加
TCPKeepAlive yes
IdentitiesOnly yes
結果:
ssh 〇
git clone ×
変化なし
3.4096bitでKeyを再発行
$ ssh-keygen -t rsa -b 4096
結果:
ssh 〇
git clone ×
変化なし
さてどうしようかとなったときに
このブログを発見
https://wing-degital.hatenablog.com/entry/2020/01/03/175752
せや、ssh-agent確認してなかったわ
解決方法
Ubuntuの場合
$ eval $(ssh-agent)
Agent pid 9202
ssh-agentに秘密鍵を登録する
$ ssh-add ~/.ssh/git
Identity added: git ([Email addr])
適当に作ったからのプログラムでgit cloneを試すと
Cloning into 'gitclone_test'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (5/5), done.
やっと解決できた!
このように小田急電鉄では問題解決が得意なエンジニアの募集を行っております!
ご興味がある方、一緒に問題解決したい方、アイディアを形にしたい方、
Twitterでのご連絡お待ちしております!