読者です 読者をやめる 読者になる 読者になる

初代Masteries

きっとモヒカンにもなれないお前たちに告げる!!!

gitosisで公開鍵の追加が出来なくなった件

...が研究室で発生したので, メモ.

症状

  • gitosisのkeydirに公開鍵を追加したにも関わらず, cloneが出来ない.
  • gitosisが置いてあるサーバの'/home/git/.ssh/authorized_keys'に, 追加した公開鍵が現れない(公開鍵を追加ではなく変更している場合, 新しい公開鍵に書き換わらない).
  • gitosis-admin.gitにpushをすると, こんなログが出てくる:
remote: Traceback (most recent call last):
remote:   File "/usr/bin/gitosis-run-hook", line 9, in <module>
remote:     load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-run-hook')()
remote:   File "/usr/lib/pymodules/python2.7/gitosis/app.py", line 24, in run
remote:     return app.main()
remote:   File "/usr/lib/pymodules/python2.7/gitosis/app.py", line 38, in main
remote:     self.handle_args(parser, cfg, options, args)
remote:   File "/usr/lib/pymodules/python2.7/gitosis/run_hook.py", line 75, in handle_args
remote:     post_update(cfg, git_dir)
remote:   File "/usr/lib/pymodules/python2.7/gitosis/run_hook.py", line 40, in post_update
remote:     path=os.path.join(generated, 'projects.list'),
remote:   File "/usr/lib/pymodules/python2.7/gitosis/gitweb.py", line 109, in generate_project_list
remote:     f = file(tmp, 'w')
remote: IOError: [Errno 2] No such file or directory: '/home/git/gitosis/projects.list.8603.tmp'

ここまでのあらすじ

  1. ...ん, gitosis-adminに公開鍵追加したのにcloneできない?
  2. パーミッション間違えてるのかな...? いや, あってる.
  3. サーバ側で変更が適用されているのかな?
  4. keydirに追加した鍵の情報は'/home/git/.ssh/authorized_keys'に追加されてるっぽいけど, 適用されてない!?
  5. ということはサーバ側に何か問題があるのか...
  6. そういえばgitosis-adminをpushするときになんか変なログ出てたな...
  7. No such file or directory...?
  8. ん, サーバを見てみると, '/home/git/gitosis'とかいうディレクトリがないぞ?
  9. これ作ればいいんじゃね...?
  10. あ, gitosis-adminをpushしても変なログ出てこなくなったし, ちゃんと登録した鍵を使ってclone出来るようになったぞ!

対処法

  • gitosisを置いているサーバ側で, 'mkdir /home/git/gitosis'する.

...というわけで, これだけで治りました.
なぜ「gitosis」ディレクトリが消えたのかは謎ですが... まあ, 解決したので良しとします.
どうせ近日中にgitlabに移行しますしね!