チュートリアル

SSH が毎回パスフレーズを聞いてくるのを止める(ssh-agent)

セキュリティのために鍵のパスフレーズは残しつつ、接続のたびに入力するのはやめる ── ssh-agent に一度読み込ませるだけ。Linux、macOS、Windows のセットアップ、パスフレーズの変更方法、そしてモバイルでの相当する仕組みも。

CC Chen Chen· 創業者·2026年6月24日·5 分で読めます

SSH が毎回パスフレーズを聞いてくるのを止める

SSH が接続のたびに Enter passphrase for key と表示し続ける場合、パスフレーズを削除する必要はありません(削除すると秘密鍵が無防備になります)。代わりに、鍵を一度 ssh-agent に読み込ませれば、そのセッションの残りの間、解除済みの鍵をキャッシュしてくれます:

ssh-add ~/.ssh/id_ed25519

パスフレーズを入力するのは一度だけ。それ以降の接続はすべて無言で済みます。本記事では Linux/macOS/Windows での ssh-agent、自動化の方法、そしてモバイルでの相当する仕組みを扱います。

パスフレーズあり vs なし

パスフレーズはディスク上の秘密鍵を暗号化するため、ノートパソコンを盗まれてもサーバーへのアクセスまで渡してしまうことはありません。この保護は残しておく価値があります。煩わしさ ── 何度も入力すること ── は、パスフレーズを削除することではなく、エージェントで解決します。つまり:パスフレーズは残し、エージェントを使う。

ssh-agent を使う(Linux/macOS)

# start the agent if it isn't running:
eval "$(ssh-agent -s)"

# add your key (type the passphrase once):
ssh-add ~/.ssh/id_ed25519

# list loaded keys:
ssh-add -l

macOS では、パスフレーズを Keychain に保存しておくと、再起動後も自動的に読み込まれます:

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

そして ~/.ssh/config に追加しておけば、最初の利用時に意識せずとも鍵が読み込まれます:

Host *
    AddKeysToAgent yes
    UseKeychain yes

Windows の場合

組み込みの OpenSSH エージェントサービスを一度有効にしてから、鍵を追加します:

Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

Windows のエージェントは再起動をまたいで保持されるため、鍵を一度追加すればそれで忘れて構いません。

パスフレーズの変更または削除

実際に変更したい場合(あるいはパスフレーズのない鍵に設定したい場合):

ssh-keygen -p -f ~/.ssh/id_ed25519

古いパスフレーズを尋ねられ、次に新しいパスフレーズを尋ねられます(空のままにすると削除)。完全に削除するのは便利ですが、ファイルをコピーした誰もがあなたのアクセス権を手にすることを意味します ── エージェントを使うほうがよいでしょう。

スマホの場合

モバイルクライアントは ssh-agent を公開していません ── 相当する仕組みを内部で処理します。TermAI では鍵はデバイスの Keychain に保存され、スマホ自身の生体認証/パスコードで解除されるため、接続ごとにパスフレーズを再入力することはありません。デバイスのセキュリティがそのままエージェントなのです。暗号化された鍵のセキュリティを保ちつつ、ワンタップで接続できます。

Keychain に保存された鍵で接続するスマホ、パスフレーズの入力プロンプトなし
モバイルではデバイスの Keychain が ssh-agent の役割を果たします:鍵はスマホの生体認証で保護され、接続はワンタップ ── パスフレーズの再入力なし。

よくある質問

SSH が毎回パスフレーズを聞いてくるのを止めるには?
ssh-add ~/.ssh/id_ed25519 で鍵を一度 ssh-agent に読み込ませます;そのセッションの間、解除済みの鍵をキャッシュします。~/.ssh/configAddKeysToAgent yes を追加すれば自動化できます。

代わりにパスフレーズを削除すべき?
やめておくほうがよいでしょう ── パスフレーズはディスク上の秘密鍵を暗号化します。利便性には ssh-agent を使い、保護は維持しましょう。

再起動後もパスフレーズを保持させるには?
macOS では ssh-add --apple-use-keychainUseKeychain yes を使います;Windows では ssh-agent サービスを自動起動に設定します。鍵はその後ひとりでに読み込まれます。

鍵のパスフレーズを変更するには?
ssh-keygen -p -f ~/.ssh/id_ed25519 を実行します;鍵自体を変えずにパスフレーズを変更します。

クイックファクト

  • パスフレーズは削除しない ── ディスク上の鍵を暗号化するため;代わりにエージェントを使う
  • キャッシュする:ssh-add ~/.ssh/id_ed25519(セッションごとにパスフレーズを一度入力)
  • 自動化:~/.ssh/configAddKeysToAgent yes;macOS Keychain / Windows エージェントが保持
  • 変更する:ssh-keygen -p -f ~/.ssh/key
  • モバイル:デバイスの Keychain + 生体認証がエージェント
Try TermAI

Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog