SSH가 ssh-agent에서 하나의 키만 사용하도록 하려면 어떻게 해야 합니까?

SSH가 ssh-agent에서 하나의 키만 사용하도록 하려면 어떻게 해야 합니까?

동일한 호스트에 연결할 때 두 개의 다른 SSH 키를 사용해야 합니다.

연결하는 데 사용해야 하는 컴퓨터(IP 주소 제한으로 인해)는 SSH 키가 저장된 컴퓨터가 아니므로 여기서는 ssh-agent를 사용하고 있습니다. 또한 이러한 SSH 연결은 중간 시스템에서 실행되는 스크립트의 제어하에 발생합니다.

SSH 키가 해당 머신에 로컬인 경우 ssh -i(또는 중첩 에이전트의 경우 ssh-add)를 사용하여 사용하려는 ID를 지정하고 스크립트 및/또는 스크립트 컨텍스트를 업데이트할 수 있다고 생각합니다. 내 경우에 맞는 일을 하십시오(아마도 관련 세부 사항을 지정하는 구성 파일을 사용하여).

그러나 ssh 연결을 수행하는 시스템에 키가 없기 때문에 ssh -i가 실패합니다(개인 키 파일이 해당 시스템에 존재하지 않음). 그리고 마찬가지로 ssh-add는 개인 키의 파일 이름을 제공하여 키를 지정하기를 원합니다. (또는 그런 경우라고 생각합니다. 실제로 ssh-agent를 중첩하는 방법을 알아내지 못했지만 ssh-add에 대한 문서에서는 이것이 그럴듯한 접근 방식이 될지 의심스럽습니다.)

그래서 내 질문은: 대상 시스템에 접속할 때 내가 지정한 키만 ssh에서 사용하도록 하려면 어떻게 해야 합니까?

[물론 다른 사람들도 이 스크립트를 사용해야 하지만 그것은 내가 직접 작동시킨 후에 해결할 수 있는 문제입니다.]

즉, 다음과 같은 상황이 있습니다.

$ ssh-add -l
2048 SHA256:A8PFww3boSTRe8sPvXDgir09KNVqu+JvWNw7/GLCiwM /home/account/.ssh/key1.pem (RSA)
2048 SHA256:Em5p4B++GIm0l/zDYgZ26VaHbIb07T6MViu5ioMPTiA /home/account/.ssh/key2_rsa (RSA)
4096 SHA256:JON2JaTTk1r3ufUrGm4C/cE9IG9edyfDxE1zTel/0u8 /home/account/.ssh/key3_rsa (RSA)

한 컨텍스트에서는 key2_rsa를 사용하려면 ssh가 필요하고 다른 컨텍스트에서는 key3_rsa를 사용하려면 ssh가 필요합니다.

여기서 잘못된 키를 사용하면 대상 시스템에 대한 연결이 실패합니다(다른 키가 시스템에 액세스할 수 있지만 해당 하위 시스템에 액세스할 수 없는 것으로 인식하기 때문입니다).

이 작업을 어떻게 수행합니까?

답변1

ssh -i다음을 포함하는 파일도 허용됩니다.공공의키이며 에이전트에서 일치하는 키가 발견되면 다른 모든 것보다 먼저 시도됩니다.

또한 -o IdentitiesOnly=yes가 지정된 경우 클라이언트는 다음을 사용합니다.오직해당 키는 거부된 경우 다른 키로 대체되지 않습니다. (다른 것으로 대체된다는 점에 유의하세요.메커니즘, GSSAPI, 비밀번호 등은 다른 옵션으로 제어됩니다.)

관련 정보