次のようにエージェントにSSHキーを追加しました。
$ ssh-add ~/.ssh/id_rsa_mac
Identity added: /Users/alex/.ssh/id_rsa_mac (/Users/alex/.ssh/id_rsa_mac)
再起動後、エージェントはこのキーを追加しなくなります。
$ ssh-add -l
The agent has no identities.
なぜこれが起こるのですか?
ベストアンサー1
エージェントにキーを追加するのは一時的です。エージェントの実行中にのみ持続します。シャットダウンまたはコンピュータを再起動すると、再追加するまでそのエントリが失われます。ssh-agent
マニュアルページから:
ssh-agentは、公開鍵認証(RSA、DSA、ECDSA)のために秘密鍵を保存するプログラムです。アイデアは、ssh-agentがXセッションまたはログインセッションの開始時に開始され、他のすべてのウィンドウまたはプログラムがssh-agentプログラムのクライアントとして起動されることです。環境変数を使用すると、ssh(1)を使用して他のシステムにログインしたときにプロキシを見つけて自動的に認証に使用できます。
エージェントには最初は秘密鍵はありません。キーを追加するにはssh-add(1)を使用してください。引数なしで実行されると、ssh-add(1)はファイルを追加します
~/.ssh/id_rsa
。 IDにパスワードがある場合、ssh-add(1)は端末(端末にパスワードがある場合)または小さなX11プログラム(X11で実行されている場合)からパスワードを要求します。どちらも該当しない場合、認証は失敗します。その後、ID をエージェントに送信します。複数の ID をエージェントに保存でき、エージェントはこれらの ID の 1 つを自動的に使用できます。現在エージェントが保持しているIDを表示します。~/.ssh/id_dsa
~/.ssh/id_ecdsa
~/.ssh/identity
ssh-add -l
macOS シエラレオン
macOS Sierra 10.12.2から起動、AppleはSSH設定用のUseKeychain設定オプションを追加しました。UseKeychain yes
に加えてこれを行うことができます~/.ssh/config
。
Host *
UseKeychain yes
OSXキーチェーン
私はOSXを使用していませんが、SuperUserで次のタイトルのQ&Aを見つけました。SSHキーでMac OS Xキーチェーンを使用するには?。
私が知る限り、KeychainはMac OS X LeopardからSSHキーの保存をサポートしています。誰かがこの機能がどのように機能するかを説明できますか?
したがって、次のコマンドを使用してSSHキーをキーチェーンにインポートできます。
$ ssh-add -K [path/to/private SSH key]
その後、起動するたびにキーを保持する必要があります。
Macを再起動するたびに、キーチェーン内のすべてのSSHキーが自動的にロードされます。 Keychain Accessアプリケーションと次のコマンドラインでキーを表示できます。
ssh-add -l
源泉:スーパーユーザー - SSHキーでMac OS Xキーチェーンを使用する方法は?
セラの上?
以降のバージョンのMacOSでは、-K
またはスイッチを使用しようとする-A
とこのメッセージが表示されることがあります。たとえば、
$ ssh-add -K
WARNING: The -K and -A flags are deprecated and have been replaced
by the --apple-use-keychain and --apple-load-keychain
flags, respectively. To suppress this warning, set the
environment variable APPLE_SSH_ADD_BEHAVIOR as described in
the ssh-add(1) manual page.
したがって、警告メッセージで提供されている指示を代わりに使用してください。
$ ssh-add --apple-load-keychain --apple-load-keychain
Identity added: /Users/slm/.ssh/somekey1_id_rsa (/Users/slm/.ssh/somekey1_id_rsa)
Identity added: /Users/slm/.ssh/somekey2_id_rsa (/Users/slm/.ssh/somekey2_id_rsa)
また、この環境変数とそのAPPLE_SSH_ADD_BEHAVIOR
値を使用して警告を表示しないこともありますmacos
。ssh-add
マニュアルページから:
$ man ssh-add
...
APPLE_SSH_ADD_BEHAVIOR
Enables or disables the older processing of the -A and -K
options used in earlier macOS releases. These options have
been renamed --apple-load-keychain and --apple-use-keychain
respectively. However, -A and -K still behave as in earlier
releases except in the following circumstances. If a
security provider was specified with -S or SSH_SK_PROVIDER,
or if APPLE_SSH_ADD_BEHAVIOR is set to the value “openssh”,
then ssh-add uses standard OpenSSH behavior: the -A flag is
not recognized and the -K flag behaves as documented in the
DESCRIPTION section above.
Otherwise, ssh-add -A and -K will behave as in earlier macOS
releases. A warning will be output to standard error unless
APPLE_SSH_ADD_BEHAVIOR is set to the value “macos”. Note:
Future releases of macOS will not support neither -A nor -K
without setting this environment variable.