Forgejo
Gitea から分派したプロジェクト。
https://forgejo.org/
SSH キーを使って署名し、Forgejo 上で検証できるようにする
ユーザー設定の「SSH / GPG キー」で公開鍵を登録し、「確認」をクリックする
チャレンジレスポンスによって鍵が有効かを検証する(素晴らしい)
コマンドが表示されており、それをターミナルエミュレータにコピペして、その結果を貼れば良い
ただ自分の環境は WSL で且つ SSH の秘密鍵は 1Password で管理しているので、若干コマンドを変える必要があった
ssh-keygen コマンドに -U オプションを渡してやる必要がある
code:challenge.sh
echo -n $CHALLENGE | ssh-keygen -Y sign -U -n example.com -f /tmp/id_ed25519.pub
HTTPS 越しに push する
git push 時は HTTPS 越しで、OAuth を使ってセキュアにやり取りできる
Git Credential Manager を使用する
初めて git push した時に自動でウェブブラウザが開き、そこで認証する
有効期限が切れると、エラーになる
https://codeberg.org/forgejo/forgejo/issues/2809
もう一度 git push などを実行すると上手くいく
SSH サーバーを無効化する
HTTPS 越しに git push できるので、SSH は不要と考えられる
server.DISABLE_SSH を true にする