git submoduleを使っていて、私は普段からずっとgitにsshしかつながないのでこうしてました。
git submodule add git@example.com:example/example.git
で、しばらくして、他の人に「git clone --recursive
できないんだけど?」と言われて、そんなバカなと思って見てみると、その人はhttpsでつないでました。
で、鍵認証が通らないので"Permission denied (publickey)"で死んでました。
さてどうしたものかな、と。
- https(ユーザー名&パスワード方式)に切り替えるのは安全性の観点から避けたい(少なくとも自分は)。
- でも、他人にsshでつなぐことを強要するのも難しい(githubなんかはhttpsを推奨しているみたいですし)
ということで、なんとかプロトコルだけ切り替える方法ないかなと思って探してたんですが、そういえばと思ってboostを見てみたら、なんとsubmoduleのURLに相対URL使えたんですね!
なので、以下のようにすれば解決しました。
git submodule add ../example.git
しかし問題はこの方法だと、相対URLで指定できないような場所(サーバーごと違うとか)のsubmoduleは、どうしようもないってことですね。
そういう場合の使い分け方法は・・・見つけたら追記します(orご存じの方いたら教えて下さい)。