1. SSH接続の基本
• SSH接続の役割:安全な通信トンネル(暗号化通信)を提供する。
• 回線自体は秘匿されるが、通信相手が誰かまでは分からない。
• 公開鍵と秘密鍵を使うことで認証を行い、通信相手が正しいか確認する仕組みが必要。
2. 公開鍵と秘密鍵の役割
公開鍵
• GitHubに登録し、通信相手が秘密鍵を持つ本人かどうかを確認するために使う。
• 他人に見られても問題ない。
秘密鍵
• 自分だけが持ち、署名や暗号化通信の復号に使う。
• 外部に漏れると安全性が失われるため、慎重に管理する。
3. SSHキーとパスフレーズ
• パスフレーズは、秘密鍵をさらに保護するための追加のセキュリティ。
• 漏れる可能性は低いが、管理が不適切(例: 無防備に保管)だとリスクが生じる。
• 忘れた場合、新しいSSHキーを作成してGitHubに再登録する必要がある。
4. SSHエージェントの活用
• SSHエージェントは、秘密鍵をメモリに保持し、パスフレーズを何度も入力しなくて済むようにする仕組み。
• ssh-add コマンドで秘密鍵を登録し、ssh-add -l で確認できる。
• SSH設定ファイル(~/.ssh/config)に基づき、複数の鍵を切り替えながら使える。
5. 複数のGitHubアカウントを切り替える方法
• SSH設定ファイルでのエイリアス設定:
• 複数の鍵を使い分けるために、~/.ssh/config に Host を設定。
• 例:
`Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
Host github-new
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_new_account`
• 認証テストのやり方
1つ目のアカウント
ssh -T git@github.com
2つ目のアカウント
ssh -T git@github-new
6. 他のデバイスでGitHubを利用する際の注意
• SSHキーはデバイスごとに個別に設定が必要。
• 新しいデバイスでは、新しいSSHキーを作成し、公開鍵をGitHubに登録する。
• SSH認証はGitHubアカウントのログインには影響しない。
• ウェブブラウザからのログインは引き続き可能。
7. パスフレーズの管理
• 覚えやすいが安全な名前やフレーズを付けることが重要。
• 例:GitHub_Work_Key や SSH_Key_2024
• パスワードマネージャー(Appleのキーチェーンなど)を活用して安全に保管する。