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 の設定ファイルにエイリアスを設定すると便利です。

設定手順

  1. ~/.ssh/config を作成または編集
nano ~/.ssh/config

  1. 以下のように記述する(例: github.comgitlab.com で異なる鍵を使用)
Host github
    HostName github.com
    User git
    IdentityFile ~/.ssh/github_rsa

Host gitlab
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/gitlab_rsa

  1. ssh -T git@githubssh -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_keysSSH接続を許可する公開鍵リスト
configSSHの接続設定
known_hosts過去に接続したホストのリスト

ただし、鍵の保存場所は IdentityFile オプションを使うことで変更可能です。


まとめ

  1. 異なるファイル名で鍵を作成する-f オプションを使う)
  2. ~/.ssh/config に複数の鍵を設定するIdentityFile を指定)
  3. ssh-add でSSHエージェントに鍵を登録する

この方法を使えば、GitHub, GitLab, AWS, サーバーごとに異なるSSH鍵を管理できます!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。