本文へ移動
Develop Tools
← 使い方ガイドへ戻る

GitHub用SSH鍵を作成・登録する方法|Ed25519で接続

GitHubへSSH接続するには、ClientのPRIVATE KEYとGitHub Accountへ登録したPUBLIC KEYを対応させます。

Browserで生成したPRIVATE KEYをLocal PCへ、PUBLIC KEYをGitHub Settingsへ配置する図
Browserで生成したPRIVATE KEYをLocal PCへ、PUBLIC KEYをGitHub Settingsへ配置する図

Ed25519・RSAのSSH鍵PairをBrowser内で生成する

PUBLIC KEYとPRIVATE KEYを分け、SHA-256 Fingerprintと自己検証結果を確認して保存できます。

GitHub用Ed25519 SSH鍵を生成する

結論:Ed25519 Key Pairを作り、GitHub SettingsへPUBLIC KEYだけを追加する

GitHub公式は通常の新規Keyとしてssh-keygen -t ed25519を案内し、非対応Legacy System向けにRSA 4096 bit例を示しています。

GitHubへBEGIN OPENSSH PRIVATE KEYを貼り付けません。PUBLIC KEYはssh-ed25519またはssh-rsaで始まります。

GitHubのSSH UserはAccount名ではなくgitです。Test Commandはssh -T [email protected]です。

GitHub登録前にKeyを識別する

端末名をCommentやGitHubのTitleへ付け、FingerprintでAgent内とAccount内のKeyを照合します。

同じKeyをAuthenticationとSigningの両方へ使う場合も、GitHub UI上のKey Type設定を確認します。

確認項目確認方法判断
Key TypeEd25519対応通常Ed25519
登録内容先頭文字列PUBLICのみ
SSH User接続Commandgit
FingerprintGitHub一覧と照合同一Key

GitHubへSSH公開鍵を登録する

  1. Key Pairを生成します。
  2. PUBLIC KEYをCopyします。
  3. GitHub SettingsのSSH and GPG keysを開きます。
  4. New SSH keyへTitleとPUBLIC KEYを登録します。
  5. PRIVATE KEYをssh-agentへ追加しssh -Tで確認します。

ssh-agent操作はOS Terminalで行います。Browser ToolからOS Agentへ追加はできません。

接続確認Command

ssh-add ~/.ssh/id_ed25519
ssh -T [email protected]
ssh -vT [email protected]

PUBLIC KEYとPRIVATE KEYを取り違えない

種類代表的な見分け方置く場所取扱い
PUBLIC KEYssh-ed25519 AAAA... またはssh-rsa AAAA...、File名末尾.pubGitHub、GitLab、Serverのauthorized_keys登録・共有可能
PRIVATE KEYBEGIN OPENSSH PRIVATE KEYで始まる、File名に.pubがないSSH Clientを使う自分の端末Secret。公開・送信・Commitしない

GitHubやServerへ貼り付けるのはPUBLIC KEYです。PRIVATE KEYは接続元端末だけで保持します。公開鍵を知られても対応する秘密鍵を作れるという意味ではありませんが、秘密鍵が漏れた場合は対象鍵を登録先から削除し、新しいKey Pairへ交換します。

BrowserでSSH鍵を生成する手順

  1. 接続先がEd25519へ対応しているか確認し、通常はEd25519を選びます。
  2. 互換性要件がある場合だけRSA 3072または4096 bitを選びます。
  3. 端末や用途を識別できるCommentと、既存鍵へ上書きしない保存名を入力します。
  4. 生成後に「署名・検証 成功」、Key Type、SHA-256 Fingerprintを確認します。
  5. PUBLIC KEYとPRIVATE KEYを別々に保存し、PRIVATE KEYへOS側で適切な権限を設定します。

現行ツールのPRIVATE KEYはPassphraseで暗号化されていません。組織PolicyがPassphraseを必須とする場合はOpenSSHのssh-keygen等を利用してください。

保存後にOpenSSHで形式とPairを確認する

ssh-keygen -y -f ~/.ssh/id_ed25519 > derived.pub
ssh-keygen -lf ~/.ssh/id_ed25519.pub -E sha256

ssh-keygen -yはOpenSSH形式の秘密鍵から公開鍵を標準出力へ再導出します。生成時のPUBLIC KEYと鍵本体が一致するか比較します。-l -E sha256はPublic Key Fingerprintを表示します。Commentは鍵本体ではないため、比較時はAlgorithmとBase64部分を確認します。

DevelopToolsのSSH鍵生成ツールでできること

項目現行ツールの仕様
AlgorithmEd25519、RSA 3072 bit、RSA 4096 bit
生成元HTTPSのSecure ContextでWeb Crypto APIを使用。Math.randomは使用しない
公開鍵OpenSSH authorized_keys形式。ssh-ed25519またはssh-rsaで始まり、任意Commentを付加
秘密鍵暗号化なしのOpenSSH Private Key形式。BEGIN OPENSSH PRIVATE KEYで開始
検証生成直後にRandom Dataへ署名・検証し、公開鍵BlobからSHA-256 Fingerprintを計算
保存公開鍵は設定名.pub、秘密鍵は設定名でDownload。公開鍵だけClipboardへCopy可能
保持鍵を生成したPage内のMemoryと表示に保持し、Reset・設定変更・pagehideで参照を破棄
非対応Passphrase暗号化、PEM・PKCS#8出力、RSA 2048、ECDSA、FIDO/U2F、既存鍵読込、ssh-agent操作
通信・永続化鍵生成Moduleはfetch等を使わず、localStorage・sessionStorage・IndexedDBへ鍵を保存しない

Toolは鍵Pairの生成、OpenSSH形式化、Fingerprint計算、署名・検証までをBrowser内で行います。GitHub登録、authorized_keys編集、File Permission変更、ssh-agent追加、SSH接続は実行しません。

秘密鍵を安全に扱うための確認事項

  • PRIVATE KEYをGitHub、Issue、Chat、Source Code、CI Logへ貼り付けない
  • Download後はOwnerだけが読めるPermissionまたはACLを設定する
  • Repository配下へ置かず、誤Commit対策だけに.gitignoreを過信しない
  • 漏えいが疑われる場合は登録先からPublic Keyを削除し、新しいKey Pairへ交換する
  • 共有端末では生成後にResetし、Download FolderやClipboardの残存も確認する

現行SSH鍵PageはThird-party Scriptを無効にし、鍵生成Moduleには外部送信・永続化処理がありません。ただし端末自体のMalware、Browser Extension、Screen Recording、Download FolderのBackup等まではToolから防げません。「Onlineなら絶対安全」とは判断せず利用環境も確認します。

一次資料で接続先とOpenSSHの仕様を確認する

GitHubの手順はGitHub接続用、OpenSSH ManualはClient・Server共通の鍵操作用です。OS、Hosting Service、sshd Policyで手順が異なるため、接続先の現在の公式資料を優先します。

具体例:Work LaptopのKeyをGitHubへ追加する

CommentとGitHub Titleへwork-laptopを付けます。

複数端末がある場合も、GitHub一覧でどのKeyか識別できます。

  1. Ed25519生成
  2. Private保存
  3. Public Copy
  4. GitHub登録
  5. Agent追加
  6. ssh -T

成功MessageにGitHub User名が出るため、想定Accountか確認します。

よくある質問

生成した鍵はDevelopToolsのServerへ送信されますか?
現行SSH鍵PageはWeb Crypto APIでBrowser内生成し、鍵生成ModuleはNetwork送信やStorage保存を行いません。公開鍵Copyと鍵File Downloadは利用者の操作時だけ実行します。
GitHubへPRIVATE KEYを登録しますか?
いいえ。登録するのはssh-ed25519またはssh-rsaで始まるPUBLIC KEYです。BEGIN OPENSSH PRIVATE KEYで始まる秘密鍵は自分のClient端末だけで保持します。
Passphrase付き秘密鍵を生成できますか?
現行ツールは暗号化なしOpenSSH Private Keyだけに対応します。Passphrase付きOpenSSH鍵が必要な場合はssh-keygen等を利用してください。