SSH 鍵の設定ガイド#
SSH 鍵を迅速に設定し、サーバーへのパスワードなしログイン、Git 認証およびコミット署名に使用します。
1. SSH 鍵ペアの生成#
# Ed25519 鍵ペアを生成(推奨)
ssh-keygen -t ed25519 -C "[email protected]"
# インタラクティブプロンプト:
# Enter file: そのまま Enter(デフォルトパス ~/.ssh/id_ed25519 を使用)
# Enter passphrase: オプションのパスワード保護またはそのまま Enter でスキップ
生成結果:
- 秘密鍵:
~/.ssh/id_ed25519(⚠️ 秘密にすること) - 公開鍵:
~/.ssh/id_ed25519.pub(公開可能)
2. SSH Config ファイルの設定#
# 設定ファイルを作成/編集
touch ~/.ssh/config
chmod 600 ~/.ssh/config
nano ~/.ssh/config
設定テンプレート:
# 開発サーバー
Host dev-server
HostName 192.168.1.100
User your_username
Port 22
IdentityFile ~/.ssh/id_ed25519
# 本番サーバー
Host prod-server
HostName prod.example.com
User admin
Port 2222
IdentityFile ~/.ssh/id_ed25519
# GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
設定項目の説明:
Host: エイリアス(カスタマイズ)HostName: 実際のサーバーアドレスUser: ログインユーザー名Port: SSH ポート(デフォルト 22)IdentityFile: 秘密鍵のパス
使用効果:
# 設定前
ssh [email protected]
# 設定後
ssh dev-server
3. サーバーへのパスワードなしログインの設定#
方法 1:ssh-copy-id を使用(推奨)#
# 完全なアドレスを使用
ssh-copy-id [email protected]
# またはエイリアスを使用
ssh-copy-id dev-server
方法 2:手動でコピー#
# 1. 公開鍵の内容をコピー
cat ~/.ssh/id_ed25519.pub
# 2. サーバーにログイン
ssh [email protected]
# 3. サーバーで実行
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "公開鍵の内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
exit
4. Git コミット署名の設定#
# ユーザー情報を設定
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
# SSH 署名を設定
git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub
git config --global commit.gpgsign true
設定ファイルの効果 (~/.gitconfig):
[user]
email = [email protected]
name = Your Name
signingkey = /Users/username/.ssh/id_ed25519.pub
[gpg]
format = ssh
[commit]
gpgsign = true
5. 公開鍵を Git プラットフォームに追加#
GitHub#
# 公開鍵をクリップボードにコピー(macOS)
cat ~/.ssh/id_ed25519.pub | pbcopy
- アクセス:https://github.com/settings/keys
- New SSH key をクリック
- 2 回追加:
- Key type:
Authentication Key→ Title:MacBook Pro→ 公開鍵を貼り付け - Key type:
Signing Key→ Title:MacBook Pro Signing→ 公開鍵を貼り付け
- Key type:
💡 同じ公開鍵は認証と署名の両方に使用できます
GitLab#
- 公開鍵をコピー:
cat ~/.ssh/id_ed25519.pub | pbcopy - アクセス:https://gitlab.com/-/profile/keys
- 公開鍵を貼り付け、Usage type を選択:
Authentication & Signing
Gitee#
- 公開鍵をコピー:
cat ~/.ssh/id_ed25519.pub | pbcopy - アクセス:https://gitee.com/profile/sshkeys
- 公開鍵を貼り付け、確定をクリック
6. よくある質問#
Q1: Permission denied (publickey)#
# 鍵の権限を確認
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
# 公開鍵を再コピー
ssh-copy-id username@server
Q2: コミットに Verified マークがない#
# メールアドレスを確認(GitHub アカウントと一致する必要があります)
git config user.email
# 署名設定を確認
git config --list | grep sign
# GitHub に Signing Key が追加されていることを確認
Q3: 署名時にパスワードの入力を求められる#
# ssh-agent に追加(macOS)
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
# または自動ロードを設定(~/.ssh/config を編集)
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
Q4: 複数の鍵の管理#
# ~/.ssh/config
# 個人用 GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
# 会社用 GitHub
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
🎯 全体の流れ#
# 1. 鍵を生成
ssh-keygen -t ed25519 -C "[email protected]"
# 2. Git 署名を設定
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub
git config --global commit.gpgsign true
# 3. 公開鍵をコピー
cat ~/.ssh/id_ed25519.pub | pbcopy
# 4. GitHub に追加
# Settings → SSH and GPG keys → New SSH key
# 2 回追加:Authentication Key + Signing Key
# 5. テスト
ssh -T [email protected]
📋 よく使うコマンド#
# 鍵の管理
ssh-keygen -t ed25519 -C "email" # 鍵を生成
cat ~/.ssh/id_ed25519.pub | pbcopy # 公開鍵をコピー
ssh-keygen -p -f ~/.ssh/id_ed25519 # 鍵のパスワードを変更
# SSH 接続
ssh-copy-id user@host # 公開鍵をサーバーにコピー
ssh -T [email protected] # GitHub 接続をテスト
ssh dev-server # エイリアスを使用してログイン
# SSH エージェント
ssh-add --apple-use-keychain ~/.ssh/id_ed25519 # 鍵を追加(macOS)
ssh-add -l # 追加された鍵を表示
# Git 設定
git config --list | grep -E "(user|gpg|sign)" # 署名設定を表示
git log --show-signature # コミット署名を表示
git commit --no-gpg-sign -m "msg" # 一時的に署名を無効にする
# 権限修正
chmod 700 ~/.ssh
chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
📚 付録#
SSH 鍵の種類の比較#
| アルゴリズム | 鍵の長さ | 推奨度 |
|---|---|---|
| Ed25519 | 256 ビット | ⭐⭐⭐⭐⭐ 最適(最も安全、最速) |
| RSA | 4096 ビット | ⭐⭐⭐ 互換性が良い |
| ECDSA | 256/384/521 ビット | ⭐⭐⭐ 一部の古いシステムはサポートしていない |
| DSA | 1024 ビット | ❌ 廃止されており、推奨されない |
セキュリティの推奨#
- ✅ 秘密鍵にパスワード保護を設定
- ✅ 秘密鍵の権限を
600に設定 - ✅ 定期的に安全な場所に鍵をバックアップ
- ❌ 秘密鍵をクラウドストレージにアップロードしない
- ❌ チャットツールを通じて秘密鍵を送信しない
Blog バージョン:1.0
対応プラットフォーム:macOS / Linux / Windows (WSL)