~/.ssh/config 디렉토리에 다음이 있습니다.
Host 12.34.56.78
IdentityFile ~/.ssh/my_identity_file
12.34.56.78로 ssh하면 모든 것이 잘 작동합니다. "my_identity_file"의 비밀번호를 묻는 메시지가 나타나면 서버에 연결할 수 있습니다.
하지만 때로는 SSH를 통해 다른 서버에 연결하고 싶을 때도 있습니다. 하지만 서버에 관계없이 이렇게 하면:
ssh [email protected]
또한 "my_identity_file"에 대한 비밀번호를 묻는 메시지도 표시되었습니다(서버의 IP 주소가 다른 경우에도 마찬가지). 모든 서버에 이 파일 세트에 대한 공개 키가 없기 때문에 이것은 매우 짜증나는 일입니다. 비밀번호를 사용하여 다른 서버(이전 공유 호스팅 계정)에 연결하고 싶지만 지금은 연결할 수 없습니다.
하나의 서버에서만 키 인증을 사용하고 ~/.ssh/config에 나열되지 않은 서버에서는 기본적으로 비밀번호를 계속 사용하려면 어떻게 해야 합니까?
답변1
구성 파일의 호스트는 실제로 서버를 식별하려는 짧은 이름입니다. 호스트 이름이나 IP로 식별하려면 호스트 이름을 사용해야 합니다. 특정 사용자를 제한할 수도 있습니다.
다음과 같은 것을 시도해보세요
Host myhost
Hostname a.b.c.d
User myuser
Identityfile my-identity-file
지정된 호스트 이름에 대해 해당 키 파일만 사용해야 하며, 호스트 이름을 지정하지 않으면 해당 사용자도 사용됩니다.
답변2
해독된 개인 키를 메모리에 보관하여 필요할 때 비밀번호를 묻지 않도록 하는 "ssh-add"와 같은 도구를 사용하는 것이 유용할 수 있습니다.
따라서 다른 호스트로 SSH를 통해 접속하고 싶을 때,
1/공개 키가 있으면 SSH가 자동으로 사용자를 인증합니다.
2/ 공개 키가 없으면 ssh는 해당 키를 사용하여 사용자를 인증하려고 시도하고 실패하며 비밀번호를 묻습니다.
그러나 Etan Reisner가 말했듯이 기본 이름으로 ID 파일을 호출한 것처럼 보입니다. 그렇지 않으면 ssh가 해당 파일을 사용하려고 시도하지 않을 것입니다. SSH 에이전트를 사용하지 않으려면 개인 키 이름을 변경하세요.