머신 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
이렇게 하면 비밀번호를 입력할 필요가 없습니다.