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
:
성냥 다음 선언을 제한합니다(다음 선언까지).주인또는성냥키워드)는 다음 조건을 충족하는 경우에만 사용됩니다.성냥키워드는 만족합니다.