GitHubのSSH秘密鍵を作成する方法|Ed25519の鍵生成からGitHub登録・動作確認まで
GitHubでは2021年8月13日にコマンドラインからのパスワード認証が廃止されました。現在、GitHubリポジトリへpushやcloneを行うには、SSH鍵認証またはPersonal Access Token(PAT)による認証が必須です。 SSH鍵認証は「公開鍵暗号方式」に基づいた認証方式で、一度設定すれば操作のたびにパスワードやトークンを入力する必要がなくなります。秘密鍵と公開鍵の2つのファイルをペアで生成し、公開鍵をGitHubに登録、秘密鍵はローカルPCに保管する仕組みです。 公開鍵暗号方式によるSSH認証の仕組み SSH認証では「秘密鍵」と「公開鍵」の2つがペアで機能します。 鍵の種類 保管場所 用途 取り扱い 秘密鍵(id_ed25519) ローカルPC ~/.ssh/ データへの電子署名 外部に公開しない 公開鍵(id_ed25519.pub) GitHubアカウント 署名の検証 サービスに自由に登録可能 SSH接続時の認証フローは次の4段階で進みます。 ローカルPCからGitHubへSSH接続を要求する GitHubがランダムなデータ(チャレンジ)を送信する ローカルPCが秘密鍵でチャレンジに電子署名し、GitHubに返送する GitHubが登録済みの公開鍵で署名を検証し、正当性が確認できれば接続を許可する 秘密鍵でなければ正しい署名を生成できないため、秘密鍵を持つ本人だけがGitHubへの認証を通過できます。秘密鍵の流出は第三者によるなりすましに直結するため、厳重な管理が求められます。 既存のSSH鍵を確認する 新しい鍵を作成する前に、PCにSSH鍵が既に存在するかを確認します。 ls -al ~/.ssh 以下のようなファイルがあれば、対応するSSH鍵が生成済みです。 ファイル名 アルゴリズム 備考 id_ed25519 / id_ed25519.pub Ed25519 現在の推奨 id_rsa / id_rsa.pub RSA レガシー環境向け id_ecdsa / id_ecdsa.pub ECDSA 楕円曲線系の旧方式 ~/.ssh ディレクトリ自体が存在しない場合(No such file or directory と表示)は、次のステップで鍵を新規生成してください。 既存の鍵がある場合、そのままGitHubに登録して使用できます。ただし、RSA鍵でビット長が2048未満のものは現在のセキュリティ基準を満たさないため、Ed25519で新規生成することを推奨します。 ssh-keygenでSSH鍵ペアを生成する Ed25519鍵を生成する(GitHub推奨) GitHubが公式に推奨するアルゴリズムはEd25519です。ターミナル(macOS / Linux)またはGit Bash(Windows)で以下を実行します。 ssh-keygen -t ed25519 -C "your_email@example.com" オプションの説明: オプション 役割 -t ed25519 鍵のアルゴリズムをEd25519に指定 -C "メールアドレス" 鍵にラベルを付与(GitHubアカウントのメールアドレスが一般的) -f ファイルパス 保存先を明示指定(省略するとデフォルトパス ~/.ssh/id_ed25519) -N "パスフレーズ" パスフレーズを対話なしで指定(スクリプトでの自動生成向け) 実行後、対話形式で保存先とパスフレーズを聞かれます。 ...