GitHubのログインについてまとめています。
GitHubのログイン時にパスワード入力を省略する方法
https接続でGitHubのパスワード入力を省略
gitコマンドで、プライベートリポジトリに対して操作しようとするとgithub.comへのログイン・パスワードを毎回要求されます。(パブリックリポジトリの場合は聞かれません)
以下は、linux(ubuntu)にて、git cloneでhttpsを使ってプライベートリポジトリをcloneする例です。
$ git clone https://github.com/<xxxxx>/test.git Cloning into 'test'... Username for 'https://github.com': username ← ユーザ名入力 Password for 'https://kabukinger@github.com': ← パスワード入力(表示されない) remote: Enumerating objects: 102, done. remote: Counting objects: 100% (102/102), done. remote: Compressing objects: 100% (67/67), done. remote: Total 102 (delta 10), reused 96 (delta 9), pack-reused 0 Receiving objects: 100% (102/102), 79.51 KiB | 3.18 MiB/s, done. Resolving deltas: 100% (10/10), done.
関連)About remote repositories – GitHub Docs
以下のコマンドで、github.comへのパスワードを記憶させることができ、都度パスワード入力しなくて済むようになります。
git config credential.helper store
参考)git パスワードを毎回聞かれる問題をHTTPSでも解決 – Qiita
ただし、IDとパスワードをローカル環境内に保存することになります。gnome-keyringなどを導入することで認証情報を暗号化して保管することが可能です。
GitHubによると、パスワード認証でのGit操作を禁止する方向だそうで、2021年8月13日以降は、パスワード認証での操作ができなくなります。代わりに個人アクセストークンベースでの認証に切り替える必要があります。
個人アクセストークンは、GitHubのSettings→Developer settings→Personal Acces tokenから生成が可能。トークンには、実行できる機能の権限設定が可能です。
参考)個人アクセストークンを使用する – GitHub Docs
なお、個人アクセストークンは、gitコマンドでパスワード要求されたときにパスワードとして入力します。
$ git clone https://github.com/username/repo.git Username: your_username Password: your_token(トークンを入力する)
トークンはパスワード扱いなので、生成画面から移動すると再度表示することができなくなります。生成画面からメモ帳などにコピー&ペーストしておきましょう。
SSH接続でGitHubへのパスワード入力を省略
また、SSH方式でGitHubに接続するようにすれば、公開鍵・秘密鍵方式での認証となりパスワード認証禁止の影響を受けません。プライベートリポジトリへのgit操作が可能になります。
$ git clone git@github.com:kabukinger/samplex.git Cloning into 'samplex'... remote: Enumerating objects: 25, done. remote: Counting objects: 100% (25/25), done. remote: Compressing objects: 100% (15/15), done. remote: Total 25 (delta 1), reused 3 (delta 0), pack-reused 0 Receiving objects: 100% (25/25), 4.59 KiB | 783.00 KiB/s, done. Resolving deltas: 100% (1/1), done.
公開鍵・秘密鍵の生成方法とGitHubへの公開鍵の登録方法は、以下を参照してください。
【関連記事】
▶GitHubにSSH接続する方法 秘密鍵・公開鍵生成と鍵の登録
GitHubにログインができなくなった理由
GitHubへのログインのセキュリティを高めるため、2要素認証を設定することが可能です。スマホのSMSメッセージやTOTPモバイルアプリを使って、2要素認証が可能なんですね。GitHubのSettings→Account security→Two-factor authenticationから設定が可能です。
2要素認証の設定時に、アクセスができなくなったときのための「リカバリコード」が発行されるので大事に保管しておきましょう。GitHubの公式ドキュメントには、以下のような警告があります。
警告: 2 要素認証の認証情報をなくしたり、アカウントのリカバリ方法が利用できなくなったりした場合、セキュリティ上の配慮から、GitHub サポートでは 2 要素認証が有効になっているアカウントへのアクセスはリストアできないことがあります。
引用:2 要素認証クレデンシャルをなくした際のアカウントの回復 – GitHub Docs
リカバリコードを紛失したときに、sshコマンドで取得できるトークンを送ればアクセスが回復できたという情報がありました。ただし、3年前の情報のため、現在でも可能かどうかは不明です。
関連)2段階認証の設定がうまくいかずにGithubにログインできなくなった時の対処法 – Qiita
GitHubへの初回ログイン時に、Windowsに間違ったパスワードが登録されてしまった
GitHubに限らず、パスワードが必要なサイトのログイン時に、初回の入力を間違えると誤った資格情報が登録されてしまうというケースがあります。
参考)githubで初回push時にパスワード間違えて詰んだ話 – Qiita
対策方法は、誤って登録されたWindows資格情報を削除すること。Windowsの検索窓に「資格情報マネージャ」と入力すると、Windows資格情報がページが開けます。
GitHubのログイン まとめ
- GitHubへはgit操作の内容や対象がプライベートリポジトリだとパスワードを要求されることがある
- パスワード入力を省略するには、個人アクセストークンやSSHでの接続でgit操作をおこなう
- 2要素認証はセキュリティが向上するが、リカバリコードを紛失するとアカウントが復活できない可能性あり