コマンドラインから keychain とリモートデスクトップ

リモートにある Mac の keychain に保存されているパスワードがどうしても必要になったときのこと。もっと簡単な方法があれば誰か教えてください。

ssh 経由でログインはできるが、keychain にどうやってアクセスすればよいか?色々と調べたところ、security というコマンドがあるようだ。

 security find-generic-password -g -a アカウント名 -s サービス名

ちなみに、find-internet-password で web アカウントなどのパスワードもゲットできる。
ローカルで試してめでたし、めでたし、と思ったがリモートで実行すると

 security: SecKeychainFindGenericPassword: User interaction is not allowed.

と言われて駄目である。気持ちは分かる。しかしパスワードは必要だ。ローカルでは大丈夫なのでじゃあリモートデスクトップ使えば良いんじゃね?ということになったが、コマンドラインからどう起動したものか...。これも色々と調べたところ、コマンドラインから制御するコマンド kickstart があった。詳しくは

 sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -help

で。あとは Chicken of the VNC という VNC クライアントで接続を試みる。しかし、ファイアーウォールがあるんじゃね?というわけで ssh のローカルの 5900 番をリモートの 5900 番で飛ばす。あと、画面を操作することを許可するためのパスワードも設定する必要があった。これは kickstart 時に、

 -clientopts -setvnclegacy -vnclegacy yes -setvncpw -vncpw パスワード

というオプションをつけておけば良かった。とりあえず以上で無事パスワードはゲットできた。しかしよ〜く見たらローカルの keychain にも最初から入っていた...orz。