アフィリエイト広告を利用しています

【解決法】macOSでSSH接続するたびにパスフレーズを聞かれる問題を解消する方法【2026年版】

リモートのMacにSSH接続するたびに、毎回パスフレーズを入力していませんか?

macOSのKeychainにSSH鍵を登録し、~/.ssh/config を正しく設定することで、パスフレーズ入力なしでSSH接続できるようになります。

ただし、ここにひとつ落とし穴がありました。エイリアスの書き方によっては、せっかくの設定が効かないんです。

この記事では、実際にハマったポイントも含めて、解決までの手順をお伝えします。

毎回パスフレーズを入力するストレス

リモートのMac mini に SSH接続するたびに毎回パスフレーズを聞かれるわけです。

1日に何回もSSHするので、これが地味にストレス。「もう覚えてくれよ…」という感じですよね。

解決の3ステップ

じゃ、どうすれば、いいのか?

やることは3つです。

  1. ssh-add でKeychainにSSH鍵を登録
  2. ~/.ssh/config に設定を追加
  3. エイリアスの修正(←ここが落とし穴)

順番に説明していきます。

ステップ1:ssh-addコマンドでKeychainに鍵を登録する

ターミナルで以下のコマンドを実行します。

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

ポイントは --apple-use-keychain というオプション。これを付けることで、macOSのKeychainにパスフレーズが保存されます。

実行するとパスフレーズを1回だけ聞かれるので、入力します。

Identity added: /Users/xxxxxx/.ssh/secret_key

こう表示されれば、ほっ。登録完了です。

ここで注意。 鍵ファイルが secret_key はサンプルです、ご自身のファイル名に読み替えてください。

ステップ2:~/.ssh/config に設定を追加する

次に、~/.ssh/config ファイルを編集します。

接続先のHost設定に、以下の2行を追加します。

Host remote-mac
  HostName 192.168.x.x
  User xxxxxxxxx
  IdentityFile ~/.ssh/secret_key
  AddKeysToAgent yes
  UseKeychain yes
  • AddKeysToAgent yes → ssh-agent に鍵を自動追加
  • UseKeychain yes → macOSのKeychainからパスフレーズを自動読み込み

この2つの設定で、再起動後もパスフレーズなしで接続できるようになります。

ステップ3:エイリアスの落とし穴に注意

で、ここからが今回一番ハマったポイントです。

ここでハマりました。

僕は .zshrc にこんなエイリアスを設定していました。

alias aimac="ssh [email protected]"

IPアドレス直指定でSSH接続するエイリアスです。

これ、一見よさそうなんですが、~/.ssh/configHost remote-mac の設定が一切適用されないんです。

ここにハマりました。

理由はシンプルで、ssh [email protected] と直接IPを指定すると、SSHクライアントは ~/.ssh/config のHostマッチングをスキップしてしまうんです。

せっかく UseKeychain yes を設定しても、そこを通らないから意味がないという…。

修正方法

エイリアスを、SSH config の Host名を使う形に変更します。

# Before(IPアドレス直指定 → configの設定が効かない)
alias aimac="ssh [email protected]"

# After(Host名指定 → configの設定が効く!)
alias remote-mac="ssh remote-mac"

たったこれだけ。

ssh remote-mac とすることで、~/.ssh/configHost remote-mac セクションが読み込まれ、UseKeychain yesAddKeysToAgent yes もちゃんと適用されます。

ふぅ。これで解決です。

1Passwordを使っている場合の補足

もうひとつ補足です。

1Passwordの SSH Agent を使っている場合、~/.ssh/config にこんな設定が入っていることがあります。

Host *
  IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"

Host * は全ホストに適用されるので、特定のホストでは1PasswordのAgentを使いたくない場合、そのHostの設定に IdentityAgent none を追加しておくと安心です。

Host remote-mac
  HostName 192.168.x.x
  User xxxxx
  IdentityFile ~/.ssh/secret_key
  AddKeysToAgent yes
  UseKeychain yes
  IdentityAgent none

これで、remote-mac への接続はシステム標準の ssh-agent + Keychain を使い、それ以外は1Passwordという使い分けができます。

まとめ

macOSでSSH接続時にパスフレーズを毎回聞かれる問題の解決ポイントは3つ。

  • ssh-add --apple-use-keychain でKeychainに鍵を登録する
  • ~/.ssh/configAddKeysToAgent yesUseKeychain yes を追加する
  • エイリアスはIPアドレス直指定ではなく、SSH configのHost名を使う(←これ大事)

特に3つ目、エイリアスでIP直指定していると ~/.ssh/config の設定が効かないという点は、見落としやすいポイントかなと思います。

この記事を書いた人

大東 信仁

カンパチが好きです。

プロフィールはこちら

10月14日開催 参加者募集中
(画像をタップ→詳細へ)

ミッションナビゲート モニター
(画像をタップ→詳細へ)

広告