へんてこのブログ

日々気づいたことや、最近やっていることを書いています

ある日突然gitosisがパスワードを聞いてきた件

問題

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 を使う - ごったく