〜/ .sshから秘密鍵を削除した後でもssh鍵が持続します—なぜですか?


18

sshキー(パブリックおよびプライベート)を生成し、に保存しました~/.ssh/myServer/

サーバーの~/.ssh/authorized_keysファイルに公開キーを追加しましたが、すべてうまくいきます!

キーがどのように機能するかを理解しようと努力して、キーを削除しましたが、まだサーバーに接続できることに驚きました。

パスワードなしで接続できるのはなぜですか?

回答:


24

OS Xキーチェーンとssh-agentの素晴らしい世界へようこそ!manページから:

ssh-agentは、公開鍵認証(RSA、DSA、ECDSA)に使用される秘密鍵を保持するプログラムです。考え方は、ssh-agentはXセッションまたはログインセッションの開始時に開始され、他のすべてのウィンドウまたはプログラムはssh-agentプログラムのクライアントとして開始されるというものです。環境変数変数を使用することにより、ssh(1)を使用して他のマシンにログインするときに、エージェントを見つけて認証に自動的に使用できます。

秘密鍵はエージェントにキャッシュされ、そこから取得されてセッションを認証しています。OS Xは、キーチェーンを介して「ユーザーフレンドリー」であるため、自動sshエージェントのキャッシュを行います。少々憂慮すべきかもしれませんが、これは主に便利なことです。

キャッシュされたキーのデフォルトの有効期間は無期限です。それはおそらく素晴らしいデフォルトではありません。ログアウト/ログインサイクルまたは再起動時にキャッシュされたキーをフラッシュします。または、次のコマンドを使用して現在のエージェントを強制終了することにより、強制的にフラッシュを実行できます。

ssh-add -D

以下を実行することにより、エージェントによってキャッシュされたすべての資格情報をリストできます。

ssh-add -l

これは同じことをしますが、完全な公開鍵を表示します:

ssh-add -L

うわー!どうもありがとう!何が起こっているのか、本当に混乱していました。わかった!
poltj18

2
@FAYNUSで問題が解決した場合は、右側の緑色のチェックマークを押して「承認済みの回答」としてマークしてください。Ask Differentへようこそ!
イアンC.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.