제어 소켓을 사용하여 중간 호스트를 통한 SSH

제어 소켓을 사용하여 중간 호스트를 통한 SSH

머신 A에서 B까지 머신 C에 SSH로 연결하고 싶습니다. 일반적으로 다음을 수행합니다.

A$ ssh user@B
B$ ssh user@C

비밀번호를 두 번 모두 입력해야 합니다(공개 키는 허용되지 않음). 두 암호를 모두 입력한 후 소켓을 사용하여 C로 SSH를 통해 연결할 수 있도록 제어 소켓을 설정하고 싶습니다. 아마도 다음과 같이 입력할 수 있습니다.

A$ ssh -S socket C

이것이 가능한가?

답변1

B를 점프 호스트로 사용할 수 있습니다.

ssh -J user@B user@C

사용자 이름이나 호스트 이름이 길면 다음에 추가할 수 있습니다 ~/.ssh/config.

Host hostB
    HostName some-long-hostname-of-B-or-its-ip
    User username-on-B

Host hostC
    HostName same-here-for-C
    User username-on-C

그런 다음 다음과 같이 ssh를 수행할 수 있습니다.

ssh -J hostB hostC

다음을 위해 점프를 구성할 수도 있습니다 ssh hostC.

Host hostC
    HostName same-here-for-C
    User username-on-C
    ProxyJump hostB

답변2

gronostaj의 답변을 보완하기 위해 -J를 사용하여 소켓을 만드는 방법은 다음과 같습니다.

$ ssh -M -S socket -J user@B user@C -fN

그런 다음 소켓을 사용하여 C에 로그인하려면 다음을 수행하십시오.

$ ssh -S socket C

이렇게 하면 비밀번호를 입력할 필요가 없습니다.

관련 정보