OSX Sierra の unlock-keychain が ssh 内で動作しなくなった

OSX Sierra の unlock-keychain が ssh 内で動作しなくなった

SSHでMACに接続し、次の行を含むスクリプトを実行します。

security unlock-keychain -p XXX

しかし、マシンを「macOS Sierra」にアップデートしてからエラーが発生します

security: SecKeychainUnlock <NULL>: The user name or passphrase you entered is not correct.

何か案は?

答え1

SSH 経由で接続すると、securityログインしているユーザーのキーチェーンが認識されないようです。security list-keychainsコマンドを発行すると、ユーザーのキーチェーンではなく、システム キーチェーンのみが表示されます。

必要なのは、ロックを解除するキーチェーン ファイルを指定することです。

security unlock-keychain -p XXX "keychain_path_here"

keychain_path_hereのようなものはどこにありますか/Users/username/Library/Keychains/login.keychain-db

答え2

マシンに SSH 接続するたびにキーチェーンを指定してロックを解除したくない場合は、SSH キーを作成して宛先マシンにコピーすることができます。

ssh-keygen
ssh-copy-id [email protected]

SSH ID をホストにコピーすると、ログインしているユーザーのデフォルトのログイン キーチェーンのロックを解除できるようになります。ログインする必要があるユーザー アカウントが複数ある場合は、各ユーザーに対して ssh-copy-id を実行できます。

(ssh-copy-id は macOS にデフォルトで含まれていません。homebrew でインストールできます)

関連情報