アカウントへの SSH キーの追加について
SSH (Secure Shell プロトコル) を使用して、GitHub のリポジトリ内のデータにアクセスし、書き込みを行うことができます。 SSH 経由で接続する場合は、ローカル コンピューター上の秘密キー ファイルを使用して認証します。 詳しくは、「SSH について」を参照してください。
SSH を使ってコミットとタグに署名することもできます。 コミット署名の詳細については、「コミット署名の検証について」を参照してください。
SSH キー ペアを生成した後、公開キーを GitHub.com に追加して、アカウントの SSH アクセスを有効にする必要があります。
前提条件
GitHub.com のアカウントに新しい SSH キーを追加する前に、次の手順を実行します。
- 既存の SSH キーを確認する。 詳しくは、「既存の SSH キーの確認」を参照してください。
- 新しい SSH キーを生成し、マシンの SSH エージェントに追加する。 詳しくは、「新しい SSH キーを生成して ssh-agent に追加する」を参照してください。
アカウントへの新しい SSH キーの追加
SSH キーを追加し、認証またはコミット署名、またはその両方に使用できます。 認証と署名の両方に同じ SSH キーを使用する場合は、2 回アップロードする必要があります。
新しい SSH 認証キーを GitHub.com のアカウントに追加した後、SSH を使用するようにローカル リポジトリを再構成できます。 詳しくは、「リモートリポジトリを管理する」を参照してください。
注: GitHub は、2022 年 3 月 15 日に古いセキュリティで保護されていないキーの種類を削除することでセキュリティを強化しました。
それ以降、DSA キー (ssh-dss
) はサポートされなくなりました。 GitHub の個人用アカウントに新しい DSA キーを追加することはできません。
2021 年 11 月 2 日以前の valid_after
を持つ RSA キー (ssh-rsa
) では、任意の署名アルゴリズムを引き続き使用できます。 その日以降に生成される RSA キーは、SHA-2 署名アルゴリズムを使用する必要があります。 SHA-2 署名を使用するには、一部の古いクライアントをアップグレードする必要があります。
-
SSH 公開鍵をクリップボードにコピーします。
SSH 公開鍵のファイル名がサンプルコードと異なる場合は、現在の設定に一致するようにファイル名を変更してください。 キーをコピーする際には、改行や空白を追加しないでください。
$ pbcopy < ~/.ssh/id_ed25519.pub # Copies the contents of the id_ed25519.pub file to your clipboard
ヒント:
pbcopy
が機能しない場合は、非表示の.ssh
フォルダーを探し、お気に入りのテキスト エディターでファイルを開き、クリップボードにコピーできます。
$ clip < ~/.ssh/id_ed25519.pub
# Copies the contents of the id_ed25519.pub file to your clipboard
注:
- Linux 用 Windows サブシステム (WSL) では、
clip.exe
を使うことができます。clip
が機能しない場合は、非表示の.ssh
フォルダーを探し、お気に入りのテキスト エディターでファイルを開き、クリップボードにコピーできます。 - Windows ターミナルを使用する新しいバージョンの Windows、または PowerShell コマンド ラインを使用する場合は、
The '<' operator is reserved for future use.
次の代替clip
コマンドを使用する必要があることを示すParseError
が表示されることがあります。
$ cat ~/.ssh/id_ed25519.pub | clip
# Copies the contents of the id_ed25519.pub file to your clipboard
$ cat ~/.ssh/id_ed25519.pub
# Then select and copy the contents of the id_ed25519.pub file
# displayed in the terminal to your clipboard
ヒント: あるいは、非表示の .ssh
フォルダーを探し、お気に入りのテキスト エディターでファイルを開き、クリップボードにコピーできます。
-
GitHub で、任意のページの右上隅にある自分のプロフィール写真をクリックしてから、 [設定] をクリックします。
-
サイドバーの [アクセス] セクションで、 [ SSH キーと GPG キー] をクリックします。
-
[New SSH key](新しい SSH キー) または [Add SSH key](SSH キーの追加) をクリックします。
-
[Title] フィールドで、新しいキーを説明するラベルを追加します。 たとえば、個人のラップトップを使っている場合、このキーに「個人用ラップトップ」といった名前を付けます。
-
キーの種類として、認証または署名のいずれかを選びます。 コミット署名の詳細については、「コミット署名の検証について」を参照してください。
-
[キー] フィールドに公開キーを貼り付けます。
-
[Add SSH key](SSH キーの追加) をクリックします。
-
ダイアログが表示されたら GitHub Enterprise Cloud のアカウントへのアクセスを確認します。 詳しくは、「Sudo モード」を参照してください。
GitHub CLI の詳細については、「GitHub CLI について」を参照してください。
GitHub CLI を使用してアカウントに SSH キーを追加する前に、GitHub CLI に対して認証を行う必要があります。 詳細については、GitHub CLI ドキュメントの「gh auth login
」を参照してください。
GitHub アカウントに SSH キーを追加するには、ssh-key add
サブコマンドを使用して公開キーを指定します。 認証キーのためで、追加のスコープを要求するように求められた場合は、コマンド ラインの指示に従います。
gh ssh-key add KEY-FILE --type {authentication|signing}
新しいキーのタイトルを含めるには、-t
または --title
フラグを使用します。
gh ssh-key add KEY-FILE --title "personal laptop"
「新しい SSH キーを生成して ssh-agent に追加する」の手順に従って SSH キーを生成した場合は、このコマンドを使用してアカウントにキーを追加できます。
gh ssh-key add ~/.ssh/id_ed25519.pub --type signing