GitHub で SSH認証カギを設定する手順を記載します。
Git を使うために、必ずしも必要というわけではないのですが、SSH認証カギを生成・登録して使用すると良い場合が多々あります。
GitHub で SSH認証カギを使用するための手順などを記載します。
以下の環境で確認しています
OS: | (1) WSL/Ubuntu, | 24.04, 22.04, 20.04 |
(2) VirtualBox/Ubuntu, | 20.04 | |
OS : | Windows11 home, | 24H2 |
Windows10 home, | Version 2003 | |
https://github.com/ にアクセスしてアカウントを作ってください。
詳細は割愛します。
SSH認証鍵はホームフォルダ下の ".ssh" フォルダに作成されます。
下記コマンドで .ssh
フォルダおよびフォルダ内のファイルを確認することで、既に登録されているSSH認証鍵の状態を確認できます。
$ ls ~/.ssh
複数のSSH認証鍵を登録することを想定して、GitHub専用フォルダに鍵を登録する手順として記載します。
下記手順でSSH認証鍵をホーム配下の .ssh/github フォルダ内に生成します。
$ mkdir ~/.ssh $ cd ~/.ssh $ mkdir github $ cd github $ ssh-keygen -t ed25519 -C hoge@foo.com <--- "hoge@foo.com" は自分のメールアドレス Generating public/private rsa key pair. Enter file in which to save the key (/home/hidetoshi/.ssh/id_rsa):/home/hidetoshi/.ssh/github/id_ed25519 <----- "github"フォルダへ修正してEnter Enter passphrase (empty for no passphrase): <-----Enterを押す Enter same passphrase again: <-----Enterを押す Your identification has been saved in /home/hidetoshi/.ssh/github/id_ed25519. Your public key has been saved in /home/hidetoshi/.ssh/github/id_ed25519.pub. The key fingerprint is: SHA256:Z5I/tXZlSEIvrQgZ2jFq8vUa6FHkmxbW+jps24D9WqU hoge@foo.com The key's randomart image is: +--[ED25519 256]--+ | = . | | * * . o | | . + X . o + | | + = O . = . | | + S = + . o| | . = O + . o | | o.+ E o . | | +* o . | | .++o | +----[SHA256]-----+ $
これで公開鍵と秘密鍵が作成できました。
NOTE
説明を ssh-keygen -t ed25519 へ変更しました。動作確認済みです。
キーのタイプ | 最小キーサイズ (bit) | 例 | 備考 |
---|---|---|---|
Ed25519 | 256 | ssh-keygen -t ed25519 -b 256 | |
ECDSA | 256 | ssh-keygen -t ecdsa -b 256 | |
RSA | 2048 | ssh-keygen -t rsa -b 2048 | 2048ビット以上の鍵サイズが推奨されます。 |
DSA / DSS | 1024 | ssh-keygen -t dsa -b 1024 | DSAキー(ssh-dss)や、古い暗号アルゴリズムは2022年3月以降サポート外となっています |
config ファイルに設定を書いていきます。無ければ以下のコマンドで作ることができます。
$ vi ~/.ssh/config
config ファイルに以下の情報を書き込みます。
["config"]
Host github.com HostName github.org IdentityFile ~/.ssh/github/id_ed25519 User git Port 22 TCPKeepAlive yes IdentitiesOnly yes
["config" (port 443 環境)]
ポート番号 22 を遮断している環境で 443 を使える場合、こちらの設定を使用してみてください。
Host github.com HostName ssh.github.com IdentityFile ~/.ssh/github/id_ed25519 User git Port 443 TCPKeepAlive yes IdentitiesOnly yes
["config" プロキシ環境下]
proxy 環境下ではこちらのサンプルを参照ください。"ProxyCommand" の行を追加しています。
Host github.com
HostName github.org
IdentityFile ~/.ssh/github/id_ed25519
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
ProxyCommand /usr/bin/corkscrew proxy.hoge.co.jp 8080 %h %p
NOTE
私の環境では corkscrew がインストールされていなかったので、
sudo apt install corkscrew
でインストールしました。
config 設定は以上です。
GitHub にアクセス後、右上のユーザーアイコンを選択すると「Settings」が見えるのでこれをクリックします。
そして画面左側のメニューから "SSH and GPG keys" をクリックします。
そして "New SSH key" をクリックします。
するとこんな画面を表示します。
続いて、以下のコマンドで公開鍵を表示し、「ssh-ed25519 ~ 自分のメールアドレス」をコピーします。
$ cat ~/.ssh/github/id_ed25519.pub ssh-ed25519 ********** ************************************************************************** ************************************************************************** ********** hoge@foo.com
"Key" の欄にコピーした公開鍵を張り付けます。
"Title" は自分がどの公開鍵かわかる名称を付けます。私は端末名を記入してみました。
複数の端末を持つ場合も共通の鍵を使用するのではなくそれぞれ異なる鍵を生成して使用するほうが良いと思います。
「Add SSH key」ボタンをクリックしたら設定は以上で完了です。
"ssh -T" コマンドで接続できるかを確認します。
以下のように表示されればOKです。
$ ssh -T git@github.com
Hi hidetoshi-kinoshita! You've successfully authenticated, but GitHub does not provide shell access.
$
リモートで作成済みのリポジトリを clone してみることで最後の動作確認としてみます。
コマンドは下記の通り先頭を "git@github.com:" とします。
$ git clone git@github.com:<ユーザ名>/<リポジトリ名>.git
Git を使うために、必ずしも必要というわけではないのですが、SSH認証カギを生成・登録して使用すると良い場合が多々あります。
GitHub で SSH認証カギを使用するための手順などを記載します。
OS : | Windows10 home, | Version 2003 |
https://github.com/ にアクセスしてアカウントを作ってください。
詳細は割愛します。
SSH認証鍵はホームフォルダ下の ".ssh" フォルダに作成されます。
下記コマンドで .ssh
フォルダおよびフォルダ内のファイルを確認することで、既に登録されているSSH認証鍵の状態を確認できます。
> dir %homedrive%%homepath%\.ssh
複数のSSH認証鍵を登録することを想定して、GitHub専用フォルダに鍵を登録する手順として記載します。
下記手順でSSH認証鍵をホーム配下の .ssh/github フォルダ内に生成します。
> %homedrive% > cd %homepath% > mkdir .ssh > cd .ssh > mkdir github > cd github > ssh-keygen -t ed25519 -C hoge@foo.com <--- "hoge@foo.com" は自分のメールアドレス Generating public/private ed25519 key pair. Enter file in which to save the key (C:\Users\[ユーザ名]/.ssh/id_ed25519): c:\users\[ユーザ名]/.ssh/github/id_ed25519 <----- "github" フォルダへ修正してEnter Enter passphrase (empty for no passphrase): <-----Enterを押す Enter same passphrase again: <-----Enterを押す Your identification has been saved in c:\Users\[ユーザ名]/.ssh/github/id_ed25519. Your public key has been saved in c:\Users\[ユーザ名]/.ssh/github/id_ed25519.pub. The key fingerprint is: SHA256:Z5I/tXZlSEIvrQgZ2jFq8vUa6FHkmxbW+jps24D9WqU hoge@foo.com The key's randomart image is: +--[ED25519 256]--+ | = . | | * * . o | | . + X . o + | | + = O . = . | | + S = + . o| | . = O + . o | | o.+ E o . | | +* o . | | .++o | +----[SHA256]-----+ C:\Users\[ユーザ名]\.ssh\github>
これで公開鍵と秘密鍵が作成できました。
NOTE
説明を ssh-keygen -t ed25519 へ変更しました。動作確認済みです。
キーのタイプ | 最小キーサイズ (bit) | 例 | 備考 |
---|---|---|---|
Ed25519 | 256 | ssh-keygen -t ed25519 -b 256 | |
ECDSA | 256 | ssh-keygen -t ecdsa -b 256 | |
RSA | 2048 | ssh-keygen -t rsa -b 2048 | 2048ビット以上の鍵サイズが推奨されます。 |
DSA / DSS | 1024 | ssh-keygen -t dsa -b 1024 | DSAキー(ssh-dss)や、古い暗号アルゴリズムは2022年3月以降サポート外となっています |
config ファイルに設定を書いていきます。無ければ以下のコマンドで作ることができます。
> notepad %homedrive%%homepath%\.ssh\config
config ファイルに以下の情報を書き込みます。
["config"]
Host github.com HostName github.com IdentityFile C:\Users\[ユーザ名]\.ssh\github\id_ed25519 User git Port 22 TCPKeepAlive yes IdentitiesOnly yes
["config" (port 443 環境)]
ポート番号 22 を遮断している環境で 443 を使える場合、こちらの設定を使用してみてください。
Host github.com HostName ssh.github.com IdentityFile C:\Users\[ユーザ名]\.ssh\github\id_ed25519 User git Port 443 TCPKeepAlive yes IdentitiesOnly yes
["config" (プロキシ環境)]
proxy 環境下ではこちらのサンプルを参照ください。
”ProxyCommand” の行を追加しています。
Host github.com
HostName github.com
IdentityFile C:\Users\[ユーザ名]\.ssh\github\id_ed25519
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
ProxyCommand "C:\Program Files\Git\mingw64\bin\connect.exe" -H http://proxy.hoge.co.jp:8080 %h %p
config の設定は以上です。
GitHub にアクセス後、右上のユーザーアイコンを選択すると「Settings」が見えるのでこれをクリックします。
そして画面左側のメニューから "SSH and GPG keys" をクリックします。
そして "New SSH key" をクリックします。
するとこんな画面を表示します。
以下のコマンドで公開鍵を表示し、「ssh-rsa ~ 自分のメールアドレス」をコピーします。
> type %homedrive%%homepath%\.ssh\github\id_ed25519.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1r2MfRiv4TGt+jTD96PLTRkYb1nn4mul2Rr 1o8a5iQ8blw3fd43c2qZYjVTIIh7N+****uVXnXyWQNeVNT/IPEoaZaaur9SDAojhcA1kUMODK 0KuKDlbddxijWqJzzmEqcrZGNFEKUTVfB/********0ScyGWiJWjIOVUloLqcdy6CEbHSjiLV7 rxFqPhFU/RO0QbqS58zjx********JXudJ+QJcwmUlLoH1k22AEH154Q28hRNriupma8D/VyJ5 2VWWHwtgF+F6jp8G72uhn46aYmQXK3brUIv7vu/k/8lAUUNI32UrPNoxWII6rbs/lU+0vs5peh QqVlPcjJd3 hoge@foo.com
"Key" の欄にコピーした公開鍵を張り付けます。
"Title" は自分がどの公開鍵かわかる名称を付けます。私は端末名を記入してみました。
複数の端末を持つ場合も共通の鍵を使用するのではなくそれぞれ異なる鍵を生成して使用するほうが良いと思います。
「Add SSH key」ボタンをクリックしたら設定は以上で完了です。
"ssh -T" コマンドで接続できるかを確認します。
以下のように表示されればOKです。
$ ssh -T git@github.com
Hi hidetoshi-kinoshita! You've successfully authenticated, but GitHub does not provide shell access.
$
リモートで作成済みのリポジトリを clone してみることで最後の動作確認としてみます。
コマンドは下記の通り先頭を "git@github.com:" とします。
$ git clone git@github.com:<ユーザ名>/<リポジトリ名>.git
本ページの情報は、特記無い限り下記 MIT ライセンスで提供されます。
2025-04-05 | - | SSH鍵アルゴリズムを RSA から Ed25519 へ記載変更、他 |
2022-11-07 | - | 新規作成 |