서로 다른 서버 사용자를 사용하여 두 개의 서로 다른 게이트웨이를 통해 동일한 서버에 연결(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매뉴얼 페이지 에서 :

성냥 다음 문장을 제한하십시오(다음 문장까지주인또는성냥키워드)는 다음 경우에만 사용됩니다.성냥키워드가 만족되었습니다.

관련 정보