正確には、頑張れば復旧可能です。
メールによるパスワードリセットとかが無いので、つらかった。
出来事
- プライベートで運用しているgitbucketサーバーにて、管理者(自分自身)のパスワードを変更(確認入力とか無いので一発勝負)
- Sign out
- Sign in
- Sign inできない
- あれ。(・・?
- 手順1でtypo?(・・?
- _| ̄|○
復旧手順
↑まずは、このissueですが、サーバー上にあるので、GUIとか無理なんで、コマンドで行ける方法を探す。
↑このブログでSQLを発行する方法を知る。
↑h2の配布元で、jarを取得。
※以下、gitbucketのデータディレクトリで作業
wget http://repo2.maven.org/maven2/com/h2database/h2/1.4.191/h2-1.4.191.jar
SQL文を準備。
$ cat > update.account.sql
update account set password='b1e439995fb20541c4738cf30ec22c6f0e8f6c8d' where user_name = 'hogehogeuser';
※ パスワードをSHA-1でハッシュする(Saltとかは無い)。
gitbucketは停止する。
docker stop gitbucket1
SQL発行
java -cp h2-1.4.191.jar org.h2.tools.RunScript -url jdbc:h2:./data -user sa -password sa -script update.account.sql -showResults
gitbucket起動
docker start gitbucket1
フロント再起動
docker restart nginx1
治った。
まとめ
- パスワード変更するときはtypoに気をつける
- h2の使い方がよくわからなかった
- そのうちgitbucketにパスワードリセット機能がつくかも