SSHを介して開かれたシェルは、ローカルシェルと同じ環境を「継承」/使用できますか? MacOSの非対話型シェルが「時々」キーチェーンにアクセスできない

SSHを介して開かれたシェルは、ローカルシェルと同じ環境を「継承」/使用できますか? MacOSの非対話型シェルが「時々」キーチェーンにアクセスできない

私は使う弾丸を押すそしてサードパーティのPythonスクリプトこれにより、コマンドラインから「プッシュ」を送信できます。このスクリプトは、MacOSの「キーチェーン」を使用して、Pushbulletで使用されるパスワードとトークンにアクセスします。

スクリプトをローカルで実行すると、次のようになります。

% pb push "SE demo"

うまくいきます。 「プッシュ」は期待どおりに送信されますが、sshを使用してマシンAからBに送信する必要があります。

% ssh B pb push "SE\ demo"

しかし、これはスクリプトにアクセスできないという逆追跡を得ます。キーホルダー。まず、キーチェーンのロックを解除することでこの問題を解決できました。

% security -i unlock-keychain

ただし、プッシュを送信するたびにこれを実行する必要がある場合、キーチェーンの目的は失われます。

ローカルシェルとSSHの主な違いは、SSHシェルが非対話型(ローカルシェルを開き、su次のようになるとログインしていませんただし、対話型シェル - これらのシェルでは、これらのプッシュ/キーチェーンを問題なく送信できます。

スクリプトがキーチェーンにアクセスできるように、SSHを使用してローカルの対話型シェル環境にアクセスするにはどうすればよいですか?

追加の詳細。私が実際にやっていることは、SSHを介してAppleScriptを実行することです。

% ssh B osascript ~/scripts/myscript

このAppleScriptの最後に、このPushbulletプッシュを送信するシェルスクリプトを実行します。

do shell script "pb push 'done'"

キーチェーンにアクセスできないため、失敗するのはこのコマンドです。スクリプトエディタまたはコマンドラインでBのローカルでAppleScriptを実行すると、do shellスクリプト部分が機能します。 OTOH、AppleScriptは、do shellスクリプトを実行している環境が非対話型および非ログインであることを報告します。

関連情報