Unixのファイルシステム構造図

ssh-add で SSH 鍵をエージェントに登録、もうパスフレーズに振り回されない

SSH の秘密鍵にパスフレーズを設定していると、サーバーに繋ぐたび、Git で pull するたびに毎回入力を求められて、正直うんざりしませんか?

かといってパスフレーズを外すのはセキュリティ的に怖い。そんな時に救世主になってくれるのが ssh-add コマンドです。

一度パスフレーズを入力して鍵を SSH エージェントに登録しておけば、それ以降の認証はエージェントが代わりにやってくれます。便利さに感動したので、布教します。

ssh-add の基本

まずは秘密鍵をエージェントに登録します。

ssh-add ~/.ssh/id_rsa

実行するとパスフレーズを 1 回だけ聞かれます。入力すれば、以降はそのターミナルセッションが続く限り、sshgit もノンストップ。

登録されている鍵を確認するには:

ssh-add -l

登録を解除する時:

ssh-add -d ~/.ssh/id_rsa   # 個別に削除
ssh-add -D                  # 全部削除

macOS なら Keychain 連携で「永続化」できる

macOS では SSH エージェントが Keychain と連携できます。これがまた便利で、一度登録すれば再起動後も覚えていてくれる

ssh-add --apple-use-keychain ~/.ssh/id_rsa

さらに ~/.ssh/config に以下を書いておくと、初回接続時に自動でエージェントへ登録されます。

Host *
  AddKeysToAgent yes
  UseKeychain yes

もう ssh-add を手で叩く必要すらない。最高。

注意点:便利さの裏側

便利な反面、エージェントに登録された鍵は そのユーザーセッション中はパスフレーズ無しで使える状態になります。

  • 共用 PC では使わない
  • 席を外す時はロックする
  • 不要になったら ssh-add -D でクリアする癖をつける

「パスフレーズを設定する意味」をちゃんと残すには、この辺りの運用がセットです。

まとめ

  • ssh-add で秘密鍵をエージェントに登録すれば、毎回のパスフレーズ入力から解放される
  • macOS なら Keychain 連携で再起動後も維持できる
  • 便利な分、ロックや ssh-add -D などの運用はちゃんとセットで

「パスフレーズ付き鍵 = 面倒くさい」と諦めてた人ほど、効果てきめんです。ぜひ。

Home » コンピューター » ssh-add で SSH 鍵をエージェントに登録、もうパスフレーズに振り回されない