구문: ssh -o 구성 값을 설정 해제하시겠습니까?

구문: ssh -o 구성 값을 설정 해제하시겠습니까?

내 파일에서 값을 PKCS11 라이브러리 경로로 /etc/ssh/ssh_config설정했습니다 .PKC11Provider

그러나 스마트 카드가 항상 존재하는 것은 아니기 때문에 비대화형 SSH 세션(예: cron에서 실행되는 세션)이 PKCS11 라이브러리를 사용하지 않고 하드 드라이브의 키만 찾도록 하고 싶습니다.

따라서 다음과 같이 ssh 명령을 입력해야 합니다.

$ ssh -o PKCS11Provider= server.com

그러나 이것은 작동하지 않습니다.

command-line line 0: Missing argument.

명령줄에서 설정을 해제할 구성 변수를 어떻게 지정합니까? 매뉴얼 페이지와 Google을 검색했지만 답을 찾지 못했습니다(아마도 나쁜 Google일 수도 있음).

거기에 값을 넣으려고 했지만 no거기에 다른 쓰레기를 넣으면 ssh는 동적 라이브러리를 찾을 수 없다고 불평합니다. 글쎄요, 작동하지만 올바른 방법이 아닌 것 같은 오류가 발생합니다.

당신의 생각에 감사드립니다.

답변1

2020년 편집: 이제(OpenSSH 8.1p1에서는) 이전에 설정한 구성 옵션 값을 none취소할 수 있는 키워드가 있습니다 .PKCS11Provider

구성 값은 내부 구성 읽기를 통해 설정 해제될 수 없습니다 ssh.

반대로 생각해보셔야 합니다. 이 값을 어디에서 설정합니까? 에서 이 작업을 수행해야 합니다 ~/.ssh/config.

특정 호스트에서만 스마트 카드를 사용하는 경우 이 옵션을 Match host블록에 넣어야 합니다.

사용자로 cron 스크립트를 실행하고 있습니까? block을 사용하여 Match exec대화형 세션을 실행할지 cron에서 실행할지 확인할 수 있습니다. 또는 카트가 존재하는지 확인하는 스크립트를 작성할 수도 있습니다(다시 말하지만 Match exec). 다른 사용자와 함께 실행하는 경우 이 옵션 없이 해당 사용자의 홈 디렉터리에 있는 구성 파일을 제공하세요.

또는 스위치를 사용하여 다른 ssh_configcron 스크립트를 제공할 수도 있습니다 . 이 경우 이 옵션을 설정하지 않습니다. 이런 식으로 많은 가능성이 있습니다. 특히 관심이 있으시면 더 자세한 내용을 추가해 드릴 수 있습니다.ssh-F

답변2

토큰/스마트 카드가 없을 때 PKCS11 라이브러리가 키를 보고하지 않으면 위험할 것 같습니다.

FWIW, openssh 6.6.1에서,

ssh -o IdentitiesOnly=yes

PKCS11 라이브러리에서 얻은 키로 인증을 시도하지 않지만 읽기를 시도하는 것으로 보입니다.

ssh -I /dev/null

불평 dlopen /dev/null failed: /dev/null: file too short하지만 대화식으로 로그인하라는 메시지가 계속 표시됩니다(적절한 키 쌍이 없지만 -vv로컬 키 쌍이 여전히 사용 가능하다는 것을 보여주기 때문입니다).

관련 정보