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
下記内容を記述
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
- Bitbucketにログイン
- 画面右上の人型から
アカウントの管理
- 左側の
SSHキー
鍵を追加
- 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 の記述が違っていました。
// リポジトリの記述
url = ssh://git@bitbucket.org/*****/******.git
// OS側の設定
Host bitbucket // .orgが抜けている
HostName bitbucket.org
とあるサイトを参考にしたらこのような記述になっていたのですが、そのサイトの人はうまくいったのでしょうか??