두 개의 서로 다른 게이트웨이를 통해 서로 다른 서버 사용자를 사용하여 동일한 서버에 연결(SSH)

두 개의 서로 다른 게이트웨이를 통해 서로 다른 서버 사용자를 사용하여 동일한 서버에 연결(SSH)

target.server내가 달성하고 싶은 것은 다음 명령을 사용하여 암호를 입력하지 않고도 로컬 컴퓨터에서 일부에 연결할 수 있는 것입니다 .

ssh [email protected]
ssh [email protected]

gateway1.example위의 각 사용자는 각각 및 에 해당하는 특정 IP 주소로부터의 연결만 허용합니다 gateway2.example. authorized_keys비밀번호를 입력하지 않고도 할 수 있도록 필요한 모든 SSH 키를 오른쪽에 추가했습니다 .

이제 내 지역에 올바른 것을 넣는 것이 남아 있다고 생각합니다 ~/.ssh/config. 내가 추가할 때:

Host target.server
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

그런 다음 작동합니다. 하지만 둘 다 만들고 작동 하는 방법을 모르겠습니다 . 나는 시도했다:ssh [email protected]user1user2

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:

성냥 다음 선언을 제한합니다(다음 선언까지).주인또는성냥키워드)는 다음 조건을 충족하는 경우에만 사용됩니다.성냥키워드는 만족합니다.

관련 정보