Linux Mint 20의 SSH 클라이언트는 FIDO USB 장치를 통해 사용자 존재 확인 메시지를 표시하지 않습니다.

Linux Mint 20의 SSH 클라이언트는 FIDO USB 장치를 통해 사용자 존재 확인 메시지를 표시하지 않습니다.

나는 최근에유비코의 보안키(FIDO/U2F 지원) 이 키를 사용하여 SSH 인증을 테스트하고 있습니다.

OpenSSH 8.2 릴리스 노트(OpenSSH 8.1 이후 변경 사항 섹션) 인용:

OpenSSH에서 새로운 공개 키 유형 "ecdsa-sk" 및 "ed25519-sk"는 FIDO 장치를 지원합니다 [...]

ecdsa-sk이 (테스트) 키를 제공하지 않고 키를 생성한 암호를 사용한 후 ssh-keygen -t ecdsa-sk평소대로 원격 호스트의 파일 id_ecdsa_sk.pub에 내용을 추가했습니다.${HOME}/.ssh/authorized_keys

원격 호스트에 SSH 연결을 시도하면 아무 것도 표시되지 않지만 보안 키 장치가 깜박이며 터치 입력하라는 메시지가 나타납니다. 장치를 터치하자마자 SSH 연결이 설정됩니다.

일부 웹 검색 후(결과의 예) 다음과 같은 메시지가 표시되어야 한다고 생각합니다.

Confirm user presence for key ECDSA-SK SHA256:blah-blah-blah

이 문제를 어떻게 해결할 수 있나요?

에서도 동일한 동작이 관찰됩니다 ed25519-sk.

환경정보

  • 로컬 및 원격 운영 체제:Linux Mint 20 Cinnamon
  • 로컬 및 원격 OpenSSH:OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f 31 Mar 2020

답변1

SSH 에이전트는 ssh자체가 아닌 보안 키와 상호작용합니다. 이는 에이전트가 터미널에 연결되어 있지 않다는 것을 의미합니다. 즉, Mint Cinnamon에서는 GNOME Keyring이 터미널로 사용됩니다. SSH 에이전트는 기본적으로 적용되지만 이는 ssh-agent.

이 메시지를 표시하는 데는 몇 가지 옵션이 있습니다.

SSH-askpass 사용

X를 사용하는 경우 에이전트는 ssh-askpass팝업 창을 통해 메시지를 표시하는 데 사용할 수 있습니다. 비밀번호(따라서 이름)를 묻는 데 가장 자주 사용되지만 GNOME Keyring 및 ssh-agent. Mint와 같은 Debian 기반 배포판에서는 다음과 같이 간단해야 합니다 apt install ssh-askpass-gnome. (more-plain 과 같은 다른 변형도 있습니다 ssh-askpass.)

에이전트에서 키 제거

터미널에서 메시지를 받으려면 에이전트 에서 먼저 인증을 시도한 다음 의 기본 키 이름으로 돌아가서 ssh메시지를 표시 할 수 있습니다 .id_ecdsa_skssh~/.ssh

그놈 키링을 사용하면 모든 키가 ~/.ssh자동으로 에이전트에 추가되므로 키를 제거하려면 키를 디렉터리 밖으로 이동해야 합니다.

mkdir ~/.ssh/noauto
mv ~/.ssh/id_ecdsa_sk* ~/.ssh/noauto/

그런 다음 이 키를 사용하려는 호스트에 대한 IdentityFile옵션 을 추가하십시오 .~/.ssh/config

Host remotename
    IdentityFile ~/.ssh/noauto/id_ecdsa_sk

그놈 키링 대신 사용하는 경우 ssh-agent키를 다른 디렉터리로 이동하는 대신 를 사용하여 에이전트에서 키를 삭제할 수 있습니다 ssh-add -d ~/.ssh/id_ecdsa_sk.

또는 을 사용 ssh-agent하고 옵션을 쉽게 전달할 수 있는 경우 빈 문자열로 ssh-agent설정할 수 있습니다 . 즉 , 실행하면 모든 PKCS#11 및 FIDO 기반 키를 에이전트에 로드하는 것이 효과적으로 블랙리스트에 추가됩니다.-Pssh-agent -P ""

보안 키 기반 SSH 키와 클라이언트 및 서버 측 모두에 구성된 기존 SSH 키 가 있는 경우 보안 키 대신 기존 키를 사용하여 인증하게 될 수 있습니다 id_ecdsa_sk. ssh-agent키. 에이전트에서 키를 제거하면 에이전트 전달( ssh -A)이 있는 원격 호스트에서 키를 사용할 수 없다는 의미이기도 합니다.

관련 정보