Mam skrypt, który przenosi ssh na komputer Mac. Oryginalny skrypt, który działał na El Capitan, odblokowuje pęku kluczy w ten sposób:
security unlock-keychain -p mypassword
Powyższe polecenie powoduje błąd w Sierra, więc zaktualizowałem go do tego:
security unlock-keychain -p mypassword ~/Library/Keychains/login.keychain
Wydaje się, że powyższe polecenie działa, ale kiedy wymieniam pęki kluczy, pęku kluczy logowania nadal nie ma i mój skrypt nie próbuje podpisać mojego kodu, ponieważ nie może dostać się do certyfikatów.
(~)$ security list-keychains
"/Library/Keychains/System.keychain"
"/Library/Keychains/System.keychain"
Wszystko działa idealnie w oknie terminala na hoście, ale potrzebuję go do pracy zdalnej w SSH.
Dziękujemy za wszelką pomoc lub sugestie.
Aktualizacja 10 października 2016 r .: Zmieniłem uwierzytelnianie ssh z hasła na klucz rsa i zaczęło działać. Po uzyskaniu dostępu do pęku kluczy logowania zacząłem pojawiać się błąd w powłoce ssh: SecKey API zwrócił: -25308 z kodu. Okazało się, że to błąd uprawnień. Kiedy wypróbowałem to na hoście w terminalu, pojawiło się okno dialogowe z pęku kluczy z prośbą o pozwolenie na dostęp.
Odpowiedzi:
Twój brelok do logowania nie pojawia się na liście wyszukiwania, tzn. Gdy go zaznaczyłeś, pokazuje dwa razy brelok systemowy. Brak pęku kluczy logowania:
Możesz użyć polecenia bezpieczeństwa, aby wyszukać kod błędu -25308. W takim przypadku jest napisane: „Interakcja użytkownika jest niedozwolona”. Jest to typowe, jeśli próbujesz podpisać swoją aplikację przez SSH (lub przez Jenkins).
Musisz wykonać polecenie bezpieczeństwa, aby włączyć znakowanie aplikacji za pomocą nieinteraktywnej powłoki:
Oto „kompletny” przyjazny skrypt Jenkins / SSH do podpisywania aplikacji:
Wołaj do Bochun Bai za spędzenie 3 tygodni z pomocą Apple na znalezieniu rozwiązania problemu -25308 i opublikowaniu go na https://sinofool.net/blog/archives/322
źródło
security set-key-partition-list
wykonał lewę!