배경
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_pepper
172.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_bull
gg-root
ss-root
IdentityFile
프록시의 키는 다음에 연결할 때도 사용됩니다.다른 호스트IdentityFile
특정이 구성되지 않았습니다 ~/.ssh/config
. 이는 구성이 특정 호스트를 인증하는 데 사용되는 키를 제한하지만 표시된 구성은 "불 키"가 다른 호스트에서 사용되는 것을 방지하지 않음을 의미합니다.