스마트 카드의 OpenSSH 클라이언트와 함께 RSA 키를 사용하고 있습니다. 스마트 카드는 PIN 패드가 있는 스마트 카드 리더로 읽혀집니다. 키는 PIN 코드로 보호됩니다.
어떻게든 PIN 코드를 캐시할 수 있나요? 저는 ssh를 사용할 때마다 카드 리더 키보드를 사용하여 PIN을 작성하는 것을 정말 좋아하지 않습니다... 짜증스러울 뿐만 아니라 다른 사람들의 눈에는 IMHO가 너무 많은 가능성을 열어줍니다.
내 설정은 Debian/Devuan + OpenSC + .ssh/config의 일반적인 "PKCS11Provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so"입니다.
opensc.conf, 프레임워크 pkcs15에 다음 줄을 추가하려고 시도했지만 아무 소용이 없습니다.
use_pin_caching = true;
pin_cache_counter = 64;
pin_cache_ignore_user_consent = true;
OpenBSD에서 동일한 구성을 사용하고 있으며 결과는 동일합니다.
저는 Aventra MyEID 4.5.5를 스마트 카드로 사용하고 있습니다. 이 기술을 프로덕션에 사용하기 전에 최대한 많은 것을 배우려고 노력하고 있기 때문에 Cherry, Gemalto(현 Thales), SCM/Identiv 등 다양한 리더기를 사용해 볼 수 있었습니다.
답변1
ssh-agent
-t
PIV 자격 증명( ssh-agent 또는 ssh-add를 통해)은 일정 기간 동안 캐시됩니다 .
SSH 클라이언트는 이미 스마트 카드/piv를 사용하여 성공적으로 인증할 수 있으므로 다음 ssh-add
명령은 이를 ssh-agent에 캐시할 수 있습니다.
ssh-add -s <path to shared library pkcs11> #add keys provided by pkcs11
# for me, /usr/lib/ssh-keychain.dylib
캐시된 ID가 만료되면 SSH 오류는 다음과 같습니다.
sign_and_send_pubkey: signing failed for RSA "
<id>
" from agent: agent refused operation
그런 다음 다음 명령을 사용하여 이전 캐시 항목을 지울 수 있습니다.
ssh-add -e <path to shared library pkcs11> #removed keys provided by pkcs11
# again, for me, /usr/lib/ssh-keychain.dylib
ssh-add -D #delete all identities from agent (may not be needed, ymmv)
자세한 내용은 리소스를 참조하세요 man ssh-add
. 하지만 2024년 2월 현재 -s 및 -e 외에 다른 PIV 관련 옵션은 없습니다.
ssh-add
pkcs15를 사용하고 있다는 점에 유의하세요. /와의 상호 운용성 은 확실하지 않지만 ssh-agent
올바른 라이브러리를 전달하는 한 필요할 수 있습니다.