SSHのキーの置き場所は決まっているのか?
こんにちは。ゆうせいです。
SSHキーを使うとき、「どこに保存すればいいの?」と疑問に思うことはありませんか?
また、SSHの鍵を複数持つ方法についても解説します。
SSHの鍵を複数持つ方法
SSHの鍵を作成するとデフォルトでは ~/.ssh/id_rsa(または id_ecdsa, id_ed25519 など)に保存されます。同じ名前で新しい鍵を作成すると、既存の鍵が上書きされてしまいます。
しかし、SSHでは複数の鍵を管理することが可能です。以下の方法で実現できます。
1. 鍵を異なるファイル名で作成する
デフォルトの id_rsa 以外の名前を指定すれば、上書きを避けられます。
ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_custom_key
このコマンドでは、~/.ssh/my_custom_key と ~/.ssh/my_custom_key.pub という鍵ペアが作成されます。
2. SSH設定ファイル (~/.ssh/config) で管理する
複数の鍵を持つ場合、SSH の設定ファイルにエイリアスを設定すると便利です。
設定手順
~/.ssh/configを作成または編集
nano ~/.ssh/config
- 以下のように記述する(例:
github.comとgitlab.comで異なる鍵を使用)
Host github
HostName github.com
User git
IdentityFile ~/.ssh/github_rsa
Host gitlab
HostName gitlab.com
User git
IdentityFile ~/.ssh/gitlab_rsa
ssh -T git@githubやssh -T git@gitlabで接続確認
3. ssh-add を利用する
SSHエージェントに複数の鍵を登録することも可能です。
ssh-add ~/.ssh/my_custom_key
ssh-add ~/.ssh/another_key
登録されている鍵を確認するには、以下のコマンドを実行します。
ssh-add -l
SSHエージェントに登録した鍵は、~/.ssh/config で特定のサーバーに適用するように設定できます。
SSHの鍵の置き場所
SSHの鍵のデフォルトの保存場所は ~/.ssh/ ディレクトリです。通常、以下のようなファイルが存在します。
| ファイル名 | 説明 |
|---|---|
id_rsa / id_ed25519 | 秘密鍵 |
id_rsa.pub / id_ed25519.pub | 公開鍵 |
authorized_keys | SSH接続を許可する公開鍵リスト |
config | SSHの接続設定 |
known_hosts | 過去に接続したホストのリスト |
ただし、鍵の保存場所は IdentityFile オプションを使うことで変更可能です。
まとめ
- 異なるファイル名で鍵を作成する(
-fオプションを使う) ~/.ssh/configに複数の鍵を設定する(IdentityFileを指定)ssh-addでSSHエージェントに鍵を登録する
この方法を使えば、GitHub, GitLab, AWS, サーバーごとに異なるSSH鍵を管理できます!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能④
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能③
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能②
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能①