macOS Sierra - 오류: SSH 내의 키체인에서 지정된 항목을 찾을 수 없습니다.

macOS Sierra - 오류: SSH 내의 키체인에서 지정된 항목을 찾을 수 없습니다.

SSH를 통해 실행하려고 하면 codesign --force --deep-verify --verbose --sign "CERT-NAME" ...항상 오류가 발생합니다.The specified item could not be found in the keychain.

그러나 동일한 명령을 로컬에서 실행하면 모두 잘 작동합니다.

어떤 아이디어가 있나요?

답변1

실제 전체 명령을 보지 않고는 확실히 말하기 어렵지만, 명령이 두 개의 셸(로컬 셸 -> ssh 터널 -> 원격 셸 -> codesign 명령)을 통해 전달되기 때문에 아마도 인용 문제가 발생했을 것이라고 추측합니다. ). 각 쉘은 해석합니다.제거하고문자열을 전달하기 전에 따옴표와 이스케이프를 사용하고 최종 셸에서 큰따옴표를 해석하기를 원하므로 다른 따옴표 레이어를 추가해야 할 수도 있습니다. 여기 몇 가지 예가 있어요.

ssh user@server codesign --force --deep-verify --verbose --sign "CERT NAME"

큰따옴표는 로컬 쉘에 의해 해석되고 제거되기 때문에 작동하지 않습니다. 따라서 최종 명령에는 (효과적으로) 인증서 이름이 인용되지 않습니다.

ssh user@server 'codesign --force --deep-verify --verbose --sign "CERT NAME"'

이는 외부(작은따옴표)가 로컬 셸에 의해 제거되고 내부(큰따옴표)가 원격 셸에서 해석되도록 남겨두기 때문에 작동하므로 전체 인증서 이름을 명령에 codesign단일 인수로 전달합니다.

ssh user@server "codesign --force --deep-verify --verbose --sign \"CERT NAME\""

이 방법도 작동하지만 여기서는 외부 레이어와 내부 레이어 모두에 큰따옴표가 사용되므로 내부 레이어를 이스케이프해야 합니다.

관련 정보