ssh-keygen 入門:ed25519 鍵の生成・確認・管理まとめ

スポンサーリンク

ssh-keygen 入門:ed25519 鍵の生成・確認・管理まとめ

ssh-keygen とは

ssh-keygen はSSHで使う公開鍵・秘密鍵のペアを生成するコマンドです。生成した公開鍵をサーバーやGitHubに登録することで、パスワードなしで安全に認証できます。


鍵を生成する

Ed25519(推奨)

ssh-keygen -t ed25519 -C "your_email@example.com"

-t ed25519 は鍵の種類(アルゴリズム)の指定です。Ed25519は現在推奨される方式で、RSAより短くて安全です。-C はコメントで、どの鍵か識別するために使います(メールアドレスが慣習)。

RSA(互換性が必要な場合)

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

古いサーバーやサービスがEd25519に対応していない場合は -t rsa -b 4096 を使います。


生成時の対話

Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/yourname/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/yourname/.ssh/id_ed25519
Your public key has been saved in /Users/yourname/.ssh/id_ed25519.pub

保存先

Enterを押すとデフォルトの ~/.ssh/id_ed25519 に保存されます。複数の鍵を使い分ける場合はパスを変更します。

Enter file in which to save the key (/Users/yourname/.ssh/id_ed25519): /Users/yourname/.ssh/id_ed25519_github

パスフレーズ

秘密鍵を保護する追加のパスワードです。設定しておくと鍵ファイルが漏れても悪用されにくくなります。空のままでも使えます。


生成された鍵を確認する

ls ~/.ssh/
id_ed25519      # 秘密鍵(絶対に外に出さない)
id_ed25519.pub  # 公開鍵(サーバーやGitHubに登録する)

公開鍵の中身を表示する

cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... your_email@example.com

これをコピーしてサーバーやGitHubに貼り付けます。

鍵の情報を確認する

ssh-keygen -l -f ~/.ssh/id_ed25519.pub
256 SHA256:xxxxxxxxxxxxxxxxxxxxx your_email@example.com (ED25519)

フィンガープリントとアルゴリズムが表示されます。


id_ed25519 ファイルとは

id_ed25519 は Ed25519 アルゴリズムで生成した SSH 秘密鍵のデフォルトファイル名です。id は identity(身元証明)、ed25519 はアルゴリズム名を表しています。

ファイル名 種類 説明
~/.ssh/id_ed25519 秘密鍵 絶対に外部に出さない
~/.ssh/id_ed25519.pub 公開鍵 サーバーや GitHub に登録する

RSA を使った場合のデフォルトは id_rsa / id_rsa.pub になります。

id_ed25519 が見当たらない場合は、まだ鍵を生成していないか、-f オプションで別のパスに保存しています。以下のコマンドで確認できます。

ls -la ~/.ssh/

複数の鍵を使い分ける(-f オプション)

用途ごとに別々の鍵を作る場合は -f でファイル名を指定します。

# GitHub用
ssh-keygen -t ed25519 -C "github" -f ~/.ssh/id_ed25519_github

# 会社のサーバー用
ssh-keygen -t ed25519 -C "work-server" -f ~/.ssh/id_ed25519_work

~/.ssh/config でホストごとに使う鍵を切り替えられます。

Host github.com
  IdentityFile ~/.ssh/id_ed25519_github

Host work.example.com
  IdentityFile ~/.ssh/id_ed25519_work

GitHubに公開鍵を登録する

gh コマンドで登録する

gh ssh-key add ~/.ssh/id_ed25519.pub --title "My Mac"

手動で登録する

  1. cat ~/.ssh/id_ed25519.pub で公開鍵をコピー
  2. GitHub → Settings → SSH and GPG keys → New SSH key
  3. 貼り付けて保存

接続確認

ssh -T git@github.com
# Hi username! You've successfully authenticated...

パスフレーズを変更する

既存の鍵のパスフレーズだけ変更できます。

ssh-keygen -p -f ~/.ssh/id_ed25519

よく使うオプション早見表

オプション 説明
-t ed25519 鍵の種類を指定(ed25519 推奨)
-t rsa -b 4096 RSA 4096bit
-C "comment" コメントを付ける(メールアドレスが慣習)
-f path 保存先ファイルを指定
-l -f key.pub 鍵のフィンガープリントを表示
-p -f key パスフレーズを変更

まとめ

# 鍵を生成(Ed25519 推奨)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 公開鍵を表示(GitHubなどに登録する)
cat ~/.ssh/id_ed25519.pub

# GitHubに登録
gh ssh-key add ~/.ssh/id_ed25519.pub --title "My Mac"

# 接続確認
ssh -T git@github.com

秘密鍵(id_ed25519)は絶対に外部に出さず、公開鍵(id_ed25519.pub)だけをサーバーやサービスに登録します。

gh コマンドの使い方全般は「gh コマンド入門:GitHub CLI で PR・Issue・リポジトリをターミナルから操作する」を参照してください。