Skip to content

GitHubにアクセスする認証はHTTPSとSSHどちらが良いか

This content is a draft and will not be included in production builds.

SSHの方が良いだろうと思う。

git-credential-xxx のプロトコルはプレーンテキストなので、以下のように実行するとトークンが読み取れてしまう。

Terminal window
cat <<END | git-credential-xxx get
protocol=https
host=github.com
username=<githubのユーザー名>
END

また、gh コマンドも2023年頃からOSネイティブなキーストアを使うようになったらしいが、結局は git のプロトコルがプレーンテキストなので同じ問題が発生する。

Terminal window
gh auth setup-git
gh auth git-credential get

SSHの場合は、秘密鍵を暗号化して使っていれば、漏洩しても解読に時間がかかるので被害を抑えられる。

HTTP以外のポートが塞がれている場合でもこうすれば迂回してSSH接続を利用できるらしい。