키 체인 스크립팅을 사용하여 계정 및 비밀번호를 검색하는 AppleScript


6

키 체인 스크립트를 사용 하여 웹 사이트의 URL이 주어지면 로그인 키 체인 에서 웹 사이트의 로그인 및 비밀번호를 검색하는 스크립트를 AppleScript로 작성할 수 있습니까?


1
관련이없는 메모에서 모든 암호를 정리하고 user / pass / data / creditcards / Etc를 사용하여 자동으로 양식을 채울 수 있도록하려는 경우 안전한 방법으로, 나는 당신이 1password를 시도 할 것을 제안 할 것이다 : (나는 그들을 위해 일하지 않는다) agilewebsolutions.com/onepassword
Martin Marconcini 2011 년

@ 마틴 : 저는 행복한 1Password 고객입니다. ;)
Lorin Hochstein 2011 년

답변:


6

키 체인 항목 의 정확한 이름 을 알고있는 경우 다음을 사용할 수 있습니다.

tell application "Keychain Scripting" to tell keychain "login.keychain" to get {account, password} of (first Internet key whose name is "www.google.com")

열쇠 고리 스크립트는 느리고 꽤 버그가 있습니다. 예를 들어 위의 예에서 특정 키 체인 항목을 검색하는 name contains대신 에을 사용하여 검색하면 name is작동하지 않습니다. @Philip이 게시 한 것과 유사한 반복 구문을 사용해야합니다.

tell application "Keychain Scripting" to tell keychain "login.keychain"

    repeat with x from 1 to (count every Internet key)
        if name of Internet key x contains "Google" then
            return {account, password} of Internet key x
        end if

    end repeat
end tell

명령 줄을 사용하고 물건을 찾길 원한다면, 나는 오히려 security find-internet-password -g -s www.google.com다음을 사용한다. 그리고 grep 을 사용하여 원하는 것을 찾는다 .


+1 명령 행. 그것들은 전형적으로 일을 훨씬 능률적이고 최적화 된 방법입니다. 그것은 AppleScript로 포함될 수도 있습니다do shell script
Philip Regan

1
를 들어 security명령, 지금이 -w암호 만 (. grep을 할 필요가 없습니다) 인쇄 옵션을 security find-internet-password -w -s www.google.com수동으로 추가 키 체인 항목에 대한 예를 들어, 또는,,,security find-generic-password -w -s bikelockcombo
여호수아 골드버그

3

키 체인 스크립팅은 라이온 (Lion)에서 꽤 잘 작동하므로 보안 명령 줄 도구가 최선의 방법입니다. 또는 기존 키 체인 액세스 스크립트보다 빠르고 쉽게 스크립트 할 수있는 Red Sweater의 스크립팅 기능을 사용할 수 있습니다.

레드 스웨터 블로그 : 사자 용 키 체인 스크립팅


1

Keychain은 Keychain Scripting 응용 프로그램을 통해 Applescript에 노출됩니다 . 웹에는 가장 기본적인 사용법 인 수많은 예제가 있습니다.

set theShortUserName to do shell script "/usr/bin/whoami" --get the short
userid. This is how your default keychain is labled.

tell application "Keychain Scripting"
    set myKeyChain to keychain theShortUserName
    set theKeyList to every Internet key of myKeyChain --email keys are
normally Internet Keys
    repeat with x from 1 to (length of theKeyList)
        set theKey to item x of theKeyList
        if the name of theKey is "name of key here" then
            set thePassword to password of theKey --grab the password
            set theUserID to the account of theKey  --grab the userid
        end if
    end repeat
end tell

MacScripter에서


AppleScript 편집기에서이 스크립트를 실행하려고하면 오류가 발생합니다 : "키 체인 스크립팅에 오류가 발생했습니다 : 키 체인을 가져올 수 없습니다 \ lorin \". " 키 체인 "로린"에서 숫자 -1728
로린 Hochstein

-1728은 많은 일을 할 수 있지만 일반적으로 문자열에 이해할 수없는 문자가있는 경우 (예 : 이스케이프해야하는 문자와 같은 경우), 단순히 "lorin"이라는 키 체인이 될 수 있습니다. 다른 값이 필요합니다 (Mac에 내 사용자 이름이있는 키 체인이 없음). 예를 들어 위의 내용 만 제공했으나 2002 년에 나온 것입니다. 따라서 최신 상태로 사용자의 필요에 맞게 작동하도록 끝까지 조정해야합니다.
Philip Regan 2011 년

1
사실, 사용자 키 체인은 username.keychain이 아니라 login.keychain이라고합니다 (변경하지 않는 한).
Asmus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.