나는 사용한다총알을 밀어그리고타사 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 스크립트를 실행하는 환경이 비대화형 및 비로그인임을 보고합니다.