내가 달성하고 싶은 것은 target.server
다음 명령을 사용하여 비밀번호를 입력하지 않고도 로컬 컴퓨터에서 일부 장치에 연결할 수 있는 것입니다.
ssh [email protected]
ssh [email protected]
위의 각 사용자는 각각 gateway1.example
및 에 해당하는 특정 IP 주소의 연결만 허용합니다 gateway2.example
. authorized_keys
비밀번호를 입력하지 않고도 다음을 수행할 수 있도록 필요한 모든 SSH 키를 오른쪽에 추가했습니다 .
ssh [email protected]
로컬 컴퓨터에서, 그런 다음 .ssh [email protected]
gateway1
ssh [email protected]
로컬 컴퓨터에서, 그런 다음 .ssh [email protected]
gateway2
이제 내 로컬에 올바른 항목을 추가해야 한다고 생각합니다 ~/.ssh/config
.
Host target.server
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
그런 다음 일하십시오. 하지만 두 가지를 동시에 작동시키는 방법을 모르겠습니다. 나는 시도했다:ssh [email protected]
user1
user2
Host target.server
User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Host target.server
User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
또는
Host target.server
User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
하지만 여전히 작동하지 않습니다 user2
. 모든 것이 통과되지만 gateway1
아무 것도 발생하지 않습니다 gateway2
.
도움을 주셔서 미리 감사드립니다!
고쳐 쓰다:다음 명령을 작동시킬 수 있었습니다.
ssh user1
ssh user2
(없이 @target.server
) 다음 구성을 사용하십시오.
Host user1
HostName target.server
User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Host user2
HostName target.server
User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
이것이 제가 사용할 것이지만, 이 질문의 시작 부분에 있는 두 명령에 대한 해결책이 여전히 궁금합니다.
답변1
아시다시피 별칭은 훌륭한 솔루션입니다. 이를 사용하고 싶지 않다면 이 Match
지시어가 또 다른 유효한 옵션이 될 수 있습니다.
Host target.server
Match User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Match User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
ssh_config
매뉴얼 페이지 에서 :
성냥 다음 문장을 제한하십시오(다음 문장까지주인또는성냥키워드)는 다음 경우에만 사용됩니다.성냥키워드가 만족되었습니다.