🦔

Githubの2段階認証

2024/05/09に公開

PCが壊れ、急遽代替えしたので、再設定から始まった今回。
代替え機も壊れかけているので、近々PC購入予定(?)
備忘として記載しました。

2要素認証(2FA)の設定方法

GitHubログイン後の右上に表示されるプロフィールアイコンから「Settings」に移動し、「Password and authentication」で設定します。

Two-factor authentication(2要素認証)

ここでの2要素認証方法は4種類あります

  • Authenticator app:認証アプリ
  • SMS/Text message:SMS/テキストメッセージ
  • Security keys:セキュリティキー
  • GitHub Mobile:GitHubモバイル

Preferred 2FA method(推奨される2FA方法)

ここではGitHubにサインインする際の2要素認証に使用する優先方法を選択します。
画像のように4つの中から1つ選択すれば良いのですが、「Authenticator app(認証アプリ)」を入れないと次の段階でエラー連発だったので、入れることをおすすめします。
ちなみに「Security keys(セキュリティキー)」登録はエラー連発してしまい、最終的に登録するのを諦めました。

Authenticator app(認証アプリ)

認証するためには携帯でTOTP(ワンタイムパスワード)アプリをダウンロードします。
GitHubに記載されてたのは下記の3種類でした。
*Microsoft Authenticator
*Authy
*1Password

Passkeys(パスキー)

2要素認証には関係ないですが、タッチ、顔認識、デバイスのパスワード、またはPINを使用してIDを検証するパスワードの代替品ですので、こちらも登録しておいた方が便利??

SSHの設定方法

既存のSSHキーの確認

①ローカルコンピューターの[ターミナル]を開きます。
②下記を入力して、ディレクトリの一覧から、公開SSHキーをすでに持っているか確認します。

$ ls -al ~/.ssh

既定では、GitHubでサポートされている公開鍵のファイル名は次のいずれかです。

id_rsa.pub
id_ecdsa.pub
id_ed25519.pub

③公開鍵のファイル名が無ければ、既定の場所に既存のSSHキーはないです。
次の「新しいSSHキーを生成」で、新しいSSHキーを作成します。
もし公開鍵のファイル名があれば、「SSHキーをssh-agentに追加する」に進みます。

新しいSSHキーを生成

①ローカルコンピューターの[ターミナル]を開き、下記を入力します。

ssh-keygen -t ed25519 -C "(自分のメールアドレス)"

これにより、指定したメールアドレスをラベルとして使い、新しいSSHキーが作成されます。

Generating public/private ed25519 key pair.

②下記の表示が出たら、Enterキーを押して既定のファイルの場所をそのまま使うことができます。

Enter a file in which to save the key (/Users/〇〇/.ssh/id_ed25519): [Press enter]

③下記が表示されたら、セキュアなパスフレーズを入力します。

Enter passphrase (empty for no passphrase): [Type a passphrase]

④下記が表示されたら、もう1度セキュアなパスフレーズを入力します。

Enter same passphrase again: [Type passphrase again]

⑤エラーコードが表示されなければ完成です。
id_ed25519 ... 秘密鍵
id_ed25519.pub ... 公開鍵(GitHubに登録する方)

SSHキーが作成されたのか気になる方は「既存のSSHキーの確認」を行い、公開鍵のファイル名があるか確認をしてください。

SSHキーをssh-agentに追加する

①ローカルコンピューターの[ターミナル]を開きます。
②下記を入力し、バックグラウンドでssh-agentを開始します。

> $ eval "$(ssh-agent -s)"

eval ssh-agent
Agent pid □□□

上記のようなメッセージが表示されればOKです。
これはssh-agentが特定のプロセスID(PID)で実行されていることを意味します。

③macOS Sierra 10.12.2 以降を使っている場合は、~/.ssh/configファイルを修正して、キーがssh-agentに自動的に読み込まれ、パスフレーズがキーチェーンに格納されるようにする必要があります。
まず、~/.ssh/configファイルが既定の場所に存在するかどうかを調べます。

$ open ~/.ssh/config

The file /Users/〇〇/.ssh/config does not exist.

ファイルがない場合は、ファイルを作成します

touch ~/.ssh/config

~/.ssh/config ファイルを開き、以下の行が含まれるようにファイルを変更します。
SSH キーファイルの名前またはパスがサンプルコードと異なる場合は、現在の設定に一致するようにファイル名またはパスを変更してください。

Text

Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519

⑥SSH秘密鍵をssh-agentに追加して、パスフレーズをキーチェーンに保存します。

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

⑦下記を入力し、保存出来ているか確認します。

$ cat ~/.ssh/id_ed25519.pub

ssh-ed25519 AAAA・・・・・(自分のメールアドレス)

上記のようなメッセージが表示されればOKです。
こちらのメッセージ(公開鍵)は後ほど使用します。

GitHubアカウントへ新しいSSHキーの追加

GitHubログイン後の右上に表示されるプロフィールアイコンから「Settings」に移動し、「SSH and GPG keys」で設定します。

①SSH keys(SSHキー)の右横にある緑の[New SSH key]をクリックします

②Add new SSH Key(新しいSSHキーを追加)

  • Title(タイトル):鍵を使用するデバイス名です
  • Key type(キーの種類):Authenticaton Key(認証キー)or Signing Key(署名キー)を選択
  • Key(鍵):先ほど[ターミナル]に表示したメッセージ(公開鍵)「ssh-ed25519 - AAAA・・・・・(自分のメールアドレス)」をコピーし、貼り付けます。

③入力をしたら、下にある緑の[Add SSH key]をクリックします。

You have successfully added the key 'MacBookPro.s'.

と表示されたので、登録出来ました!

GitHubとのSSH接続を確認する

①ローカルコンピューターの[ターミナル]を開きます。
②下記を入力し、接続を確認します。

$ ssh -T git@github.com

Hi (GitHub名)! You've successfully authenticated, but GitHub does not provide shell access.

上記のようなメッセージが表示されればOKです。

これで、Githubの2段階認証は完了です
お疲れ様でした!!

参考

2要素認証の設定(2024/05/09 閲覧)
https://tech.quartetcom.co.jp/2023/09/04/github-2fa/
https://docs.github.com/ja/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication

SSHの設定(2024/05/09 閲覧)
https://blog.cloud-acct.com/posts/u-github-ssh/
https://kinsta.com/jp/blog/generate-ssh-key/
https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys

Discussion