mo-fu note

研究からキックボクシングまで何でも書いていきます!

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でデプロイできるようになりました。