MacOSX Snow Leopardに記憶されたSSHパスフレーズ


8

Snow Leopardで非常に奇妙な状況に直面しています。Linuxサーバーがあり、RSAキーでのみ認証されたssh接続を受け入れるように設定されています。パスワードなし。私のラップトップでは、ssh-keygenを使用してRSAキーを正しく展開しました。その間、パスフレーズを追加しました。次に、Linuxサーバーの.ssh / authorized_keysにid_rsa.pubを移動しました。

ここまでは順調ですね。次に、Snow LeopardラップトップからLinuxマシンにログインしてみます。パスフレーズを尋ねるウィンドウポップアップが表示されます。ポップアップではなく、シェルパスフレーズのリクエストを期待していたので、これは私が最初に驚いたことです。このポップアップウィンドウの詳細によると、パスフレーズを要求するアプリケーションはsshです。また、無効になっている「キーチェーン内のフレーズを記憶する」オプションがあります。

パスワードを入力します。ポップアップが消え、ターミナルはLinuxマシンに正しくログインします。ここでログアウトして再度sshを実行すると、ログインはパスフレーズの要求なしで行われますが、これは私が望んでいることではありません。

私がチェックしたもの:

  • キーチェーンには何も保存されません。閲覧して何も見つかりませんでした。
  • 端末を閉じたり閉じたりして新しい端末を開いても、パスフレーズの入力は求められず、sshは問い合わせなしでログインします。
  • MacOSXセッションからログアウトして再ログインすると、次の試行でパスフレーズが要求され、ポップアップダイアログが再度表示されます。その後、それはもう要求されません。

パスフレーズはどこに保存されますか?正確に何が起こっているのですか、そしてどのようにしてsshの試行ごとにパスフレーズの要求を強制できますか?

回答:


10

OS Xは、秘密鍵が必要なときに、自動的にssh-agentを起動します。その後、OS Xからログアウトするか、キーを削除する(ssh-add -dまたはssh-add -Dすべてのキーを削除する)まで、ssh-agentを介して(パスフレーズを再度入力することなく)キーを使用できます。

これは、ssh-agentを使用した標準の* NIXシステムの動作に似ており、エージェント認証転送(ssh -A)などの便利な機能を使用できるため、ネットワーク全体に秘密鍵を置く必要がありません。


(Macのすべてのユーザーに対して)ssh-agentを無効にする場合は、ファイルを削除できます。 /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist


別の方法は、LaunchAgentをアンロードして無効にすることです。

sudo launchctl -w /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist

これ-wにより、単にアンロードされるだけでなく、無効としてマークおよび記憶されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.