SSH 에이전트는 키에 사용하는 이름을 어디서 얻나요?

SSH 에이전트는 키에 사용하는 이름을 어디서 얻나요?

SSH 에이전트가 사용 중인 키를 어떻게 참조하는지 잘 모르겠습니다.

다음 주석이 포함된 4개의 SSH 키가 있습니다.

$ tail -n +1 *.pub
==> github_id_ed25519.pub <==
ssh-ed25519 ... mygithubusername@myhost

==> id_ecdsa.pub <==
ecdsa-sha2-nistp521 ... me@myhost

==> id_ed25519.pub <==
ssh-ed25519 ... me@myhost

==> id_rsa.pub <==
ssh-rsa ... me@myhost

SSH 에이전트에 다음 키를 추가했습니다(확인 -c옵션 사용).

$ ssh-add -c github_id_ed25519 id_ecdsa id_ed25519 id_rsa
Enter passphrase for github_id_ed25519 (will confirm each use): 
Identity added: github_id_ed25519 (mygithubusername)
The user must confirm each use of the key
Identity added: id_ecdsa (id_ecdsa)
The user must confirm each use of the key
Identity added: id_ed25519 (me@myhost)
The user must confirm each use of the key
Identity added: id_rsa (id_rsa)
The user must confirm each use of the key

추가된 모든 키를 나열했습니다.

$ ssh-add -l
256  SHA256:... mygithubusername (ED25519)
521  SHA256:... id_ecdsa (ECDSA)
256  SHA256:... me@myhost (ED25519)
4096 SHA256:... id_rsa (RSA)

SSH 에이전트는 키를 참조하는 데 사용되는 이름을 어디서 얻나요?

다음을 사용하는 것 같습니다:

  1. 키 파일의 전체 설명(키 하나에 대해)
  2. 키 파일의 주석 일부(키용)
  3. 키 파일의 파일 이름(두 키 모두)

이것을 이해하기 어렵습니다. 키의 파일 이름을 사용하는 것이 가장 간단하지만 지금은 엉망입니다. 현재 SSH를 사용하여 로그인하고 확인 대화 상자를 받을 때마다 실제로 어떤 키를 사용하려고 하는지 파악하기가 어렵습니다.

답변1

ssh-add개인 키 파일의 설명을 읽어보세요. 실패하면 추가 프롬프트에 대한 설명으로 파일 이름을 사용합니다.

~에서SSH-add.c:파일 추가() :

if (comment == NULL || *comment == '\0')
    comment = xstrdup(filename);

파일 이름을 주석으로 사용하는 ID에는 수동으로 편집하더라도 키와 함께 원래 저장된 주석이 없는 것으로 의심됩니다.사람들키 파일은 나중에 생성됩니다. 매뉴얼 ssh-keygen페이지에는 주석을 변경하거나 추가할 수 없다는 내용이 나와 있습니다.사적인더 이상 사용되지 않는 키 형식의 키 파일:

 -c      Requests changing the comment in the private and public key files.  This
         operation is only supported for RSA1 keys.

관련 정보