コマンドラインから 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。