はじめに
以前よりMacのSourceTreeを使ってSSHでのGitHub接続を行っているが、上手くいったと思ったら、また繋がらなくなることがあった。
(Permission Denied
が出てしまう)
結局のところgitコマンドにて設定してしまうのが1番手っ取り早いことに落ち着いた。
gitの接続先確認
gitリポジトリがあるディレクトリで以下のコマンドを実行
git remote -v
以下のようにsshのURLになっていると接続できない。
origin ssh://git@github.com/fizz-org/buzz.git (fetch)
origin ssh://git@github.com/fizz-org/buzz.git (push)
接続先変更
.ssh/config
に記載の内容をもとに設定を行う。
configの記載例
Host github.com.hoge
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
UseKeychain yes
Git接続URL変更
git remote
にてGitの接続URLを変更する
git remote set-url origin git@github.com.hoge:fizz-org/buzz.git
git remote set-url --push origin git@github.com.hoge:fizz-org/buzz.git
接続URLが変更になっているはず
git remote -v
origin git@github.com.hoge:fizz-org/buzz.git (fetch)
origin git@github.com.hoge:fizz-org/buzz.git (push)
念の為sshの接続確認を実施
ssh -T git@github.com.hoge
Hi user! You've successfully authenticated, but GitHub does not provide shell access.
が表示されればOK!
これでSourceTreeからのアクセスも大丈夫!
ポイント
-
config
に記載のHost(github.com.hoge
)が、git remote
コマンドのorigin
の後のホスト名になる -
git remote
コマンドのfizz-org
はGitHubのorganization
- ホスト名とorganizationの間は
:
(コロン)で区切る