問題
gitosisを使っていて、普通にcloneなどをやろうとしたらssh接続時みたいにパスワードを要求してきた
gitosisにはパスワードを設定していないので、何も出来ない状態になった
解決法
結論的に、gitosisのauthorized_keysがおかしくなっていたのが原因だった
どのタイミングでおかしくなったのか分からないが、authorized_keysのファイル自体が消えていたようだ
gitosisのauthorized_keysは普通のsshの時の記述とは違い、以下のような記述となっている
### autogenerated by gitosis, DO NOT EDIT command="gitosis-serve user1",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3(略) user1 command="gitosis-serve user2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3(略) user2
このような記述になっていないと、公開鍵が合っていても弾かれてパスワードを要求してくる模様
なので、手作業で一旦authorized_keysに上記のようなcommandを書き、gitosis-adminをclone出来るようにした
その後、適当な鍵をgitosis-adminに追加してpushしたところ、自動でauthorized_keysが書き変わり、正常になった
よかった
違う方法
ここで、authorized_keysにcommandとか書いたけど、わざわざこれをする必要もなくて、適当な鍵を用意してauthorized_keysに普通のsshの時と同じようにべたっと記述する
ssh-rsa AAAAB3(略) user1
これで、この鍵を使ってgitosis-adminのリポジトリを直接cloneしてしまえばいい
$ git clone gitosis@hoge.com:repositories/gitosis-admin.git
それで適当な鍵を追加してpushすれば、同じような結果になったと思う
参考サイト
だいたいここに書いてあった
レンタルサーバ等で gitosis を使う - ごったく