Gitで”Permission denied (publickey).” が出たときのメモ

  • 39
    いいね
  • 3
    コメント
この記事は最終更新日から1年以上が経過しています。

SourceTreeを使ってBitbucketを利用しています。
WindowsからMacに移行したので環境を作り直し、同じようにプッシュしようとしたら

”Permission denied (publickey).” 

というエラーが出てしまったので、その対処法をメモしておきます。

前提条件

  • すでにBitbucket上にリポジトリがある
  • ローカルにもリポジトリがある(他の環境からHDDまるごとコピーしてきた等)
  • SourceTreeもインストール済み
  • 変更をプッシュしようとしたら表題のエラーが出てしまう

MacにSSH鍵の準備

手順① SSHの鍵を作成

// hoge@hoge.com の部分はBitbucketに登録しているメールアドレス
$ ssh-keygen -t rsa -C hoge@hoge.com

手順② 作成された鍵の名前を変更する

// 名前は自分でわかれば何でも構わない
$ mv id_rsa bitbucket_rsa
$ mv id_rsa.pub bitbucket_rsa.pub

手順③ OSにSSH鍵を認識させる

$ cd ~/.ssh/
$ vi config

下記内容を記述

~/.ssh/config
Host bitbucket.org
  HostName bitbucket.org
  User git
  Port 22
  IdentityFile ~/.ssh/bitbucket_rsa // 名前変更したSSH鍵
  TCPKeepAlive yes
  IdentitiesOnly yes

Bitbucketへの登録

手順④ 公開鍵の内容をクリップボードにコピー

// ファイル名は自分で変更したものを入力
$ pbcopy < bitbucket_rsa.pub

手順⑤ アカウント情報に公開鍵を追加

参考:Bitbucketアカウントに公開鍵をインストールする方法
https://confluence.atlassian.co.jp/pages/viewpage.action?pageId=35095449

  1. Bitbucketにログイン
  2. 画面右上の人型から アカウントの管理
  3. 左側の SSHキー
  4. 鍵を追加
  5. Labelに適当な名前(PC名とか)を入力し、Keyにクリップボードの内容をペースト。鍵を追加

手順⑥ ターミナルからログインの確認

$ ssh -T git@bitbucket.org

// 成功した場合
logged in as *****.
You can use git or hg to connect to Bitbucket. Shell access is disabled.

// 失敗した場合
Permission denied (publickey).

上記手順で失敗した場合は ~/.ssh/config の記述が間違えている可能性があります(他にも回線の不具合とかBitbucketが落ちてるとかもありますが)。

おわり

今回の自分のつまづきポイントは、リポジトリのconfigの記述と ~/.ssh/config の記述が違っていました。

hogehoge/.git/config
// リポジトリの記述
url = ssh://git@bitbucket.org/*****/******.git
~/.ssh/config
// OS側の設定
Host bitbucket // .orgが抜けている
  HostName bitbucket.org

とあるサイトを参考にしたらこのような記述になっていたのですが、そのサイトの人はうまくいったのでしょうか??