Sqaleで複数アカウント利用時にgit push出来ない問題の解決方法
Sqale で複数アカウントを使って開発している時、 git push でデプロイ出来なくて困ったことがあったのでメモ。
Sqale - 開発者のためのホスティングサービス【スケール】 Ruby on Rails 対応。
問題
Sqaleを複数アカウント利用している時、 sqale-foo のアプリケーションはgit pushでデプロイできるのに、 sqale-bar では以下のようなエラーが出てデプロイ出来ないことがあった。
エラーの内容
Your repository path is invalid. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
複数アカウントでSSH接続する時の方法については、 Sqale - FAQ: 技術的な仕様に関する質問 に記載されている。
しかし、この方法でssh ログインはできるようになったけど、 git コマンドでの git push(デプロイ) や git fetch が出来ない。
解決方法
sqale-bar の remoteのURL gateway.sqale.jp
を
~/.ssh/config
のHost名にすることで解決できた。
~/.ssh/config
の設定が以下のような時
Host sqale-foo User sqale Port 2222 HostName gateway.sqale.jp IdentitiesOnly yes IdentityFile ~/.ssh/id_rsa ServerAliveInterval 45 Host sqale-bar User sqale Port 2222 HostName gateway.sqale.jp IdentitiesOnly yes IdentityFile ~/.ssh/sqale-bar.id_rsa ServerAliveInterval 45
remote の url を gateway.sqale.jp
から sqale-bar
に変更した。
変更する時は git remote set-url
コマンドで設定する。
git remote set-url sqale ssh://sqale@sqale-bar:2222/sqale-bar/sqale-bar.git
変更後は git remote -v
コマンドで、URLを確認する。
変更前
sqale ssh://sqale@gateway.sqale.jp:2222/sqale-bar/sqale-bar.git (fetch) sqale ssh://sqale@gateway.sqale.jp:2222/sqale-bar/sqale-bar.git (push)
変更後 (gateway.sqale.jp が sqale-bar に変わっている)
sqale ssh://sqale@sqale-bar:2222/sqale-bar/sqale-bar.git (fetch) sqale ssh://sqale@sqale-bar:2222/sqale-bar/sqale-bar.git (push)
変更後は sqale-bar 用の秘密鍵が使用され git pushでデプロイできるようになりました。