banner
yyh

Hi, I'm yyh

github
x
email

SSHキー設定の完全ガイド

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
  1. アクセス:https://github.com/settings/keys
  2. New SSH key をクリック
  3. 2 回追加:
    • Key type: Authentication Key → Title: MacBook Pro → 公開鍵を貼り付け
    • Key type: Signing Key → Title: MacBook Pro Signing → 公開鍵を貼り付け

💡 同じ公開鍵は認証と署名の両方に使用できます

GitLab#

  1. 公開鍵をコピー:cat ~/.ssh/id_ed25519.pub | pbcopy
  2. アクセス:https://gitlab.com/-/profile/keys
  3. 公開鍵を貼り付け、Usage type を選択:Authentication & Signing

Gitee#

  1. 公開鍵をコピー:cat ~/.ssh/id_ed25519.pub | pbcopy
  2. アクセス:https://gitee.com/profile/sshkeys
  3. 公開鍵を貼り付け、確定をクリック

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 鍵の種類の比較#

アルゴリズム鍵の長さ推奨度
Ed25519256 ビット⭐⭐⭐⭐⭐ 最適(最も安全、最速)
RSA4096 ビット⭐⭐⭐ 互換性が良い
ECDSA256/384/521 ビット⭐⭐⭐ 一部の古いシステムはサポートしていない
DSA1024 ビット❌ 廃止されており、推奨されない

セキュリティの推奨#

  • ✅ 秘密鍵にパスワード保護を設定
  • ✅ 秘密鍵の権限を 600 に設定
  • ✅ 定期的に安全な場所に鍵をバックアップ
  • ❌ 秘密鍵をクラウドストレージにアップロードしない
  • ❌ チャットツールを通じて秘密鍵を送信しない

Blog バージョン:1.0
対応プラットフォーム:macOS / Linux / Windows (WSL)

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。