ssh-add는 ssh_config 파일의 선언을 존중합니까?

ssh-add는 ssh_config 파일의 선언을 존중합니까?

배경

4096비트 RSA 키 쌍을 사용하여 내 서버에 대한 액세스를 인증합니다. ssh_config내가 참조하는 파일 ~/.ssh/config/etc/ssh/ssh_config.

내 모습은 다음과 같습니다 ~/.ssh/config.

Host gg-root
    HostName 172.47.95.122

Host ss-root
    HostName 172.47.95.123

# Common for my servers
Host gg-root ss-root
    User root
    Port 32001
    IdentitiesOnly yes
    IdentityFile ~/.ssh/id_rsa_bull

# Common for all
Host *
    AddKeysToAgent yes

이제 다음 명령을 사용하여 SSH를 통해 내 서버에 연결할 수 있습니다(추가 구성 필요 없음).

ssh gg-root
ssh ss-root

문제는 ~/.ssh/id_rsa_bull다른 애플리케이션(SFTP에 사용하는 FileZilla 등)이 쉽게 사용할 수 있도록 시스템의 SSH 에이전트에 개인 키를 추가해야 한다는 것입니다. (특히 FileZilla에 암호화되지 않은 개인 키가 필요하다는 점이 마음에 들지 않기 때문입니다 .ppk.)

그래서 저는 매번 이 명령을 실행합니다:

ssh-add ~/.ssh/id_rsa_pepper

아니면 이것을 내 안에 넣으세요 ~/.profile:

ssh-add ~/.ssh/id_rsa_pepper > /dev/null 2>&1

질문

시스템에 키를 추가하는 SSH 에이전트를 사용할 때 ssh-add파일에 작성한 선언을 따르나요? 구체적으로 에만 사용되도록 ssh_config보장합니까 ?~/.ssh/id_rsa_pepper172.47.95.{122,123}

내가 읽은 내용에 대한 나의 해석에 따르면, 그렇게 되어야 한다고 믿습니다. 내가 틀렸다면 시스템의 SSH 에이전트에 개인 키를 추가하는 방법을 알려주십시오. 여기서 개인 키는 지정된 호스트에만 해당됩니까?


편집 : 답변을 기반으로

~/.ssh/config지금 내 모습은 이렇습니다 .

Host gg-root
    HostName 172.47.95.122

Host ss-root
    HostName 172.47.95.123

# Common for my servers
Host gg-root ss-root
    User root
    Port 32001
    IdentityFile ~/.ssh/id_rsa_bull

# Common for all
Host *
    AddKeysToAgent yes
    IdentitiesOnly yes

답변1

ssh-add구성 파일을 존중하지 않습니다. 단지 에이전트에 키를 추가하기만 하면 됩니다.

클라이언트는 ssh또는 에 연결할 때 구성으로 인해 키를 사용하려고 시도합니다. 에이전트에서 키를 사용할 수 있으면 거기에서 사용하고, 그렇지 않으면 파일에서 사용합니다(키에 연결된 비밀번호가 있는 경우 비밀번호를 제공해야 할 수도 있습니다).~/.ssh/id_rsa_bullgg-rootss-rootIdentityFile

프록시의 키는 다음에 연결할 때도 사용됩니다.다른 호스트IdentityFile특정이 구성되지 않았습니다 ~/.ssh/config. 이는 구성이 특정 호스트를 인증하는 데 사용되는 키를 제한하지만 표시된 구성은 "불 키"가 다른 호스트에서 사용되는 것을 방지하지 않음을 의미합니다.

관련 정보