컴퓨터 가 3 대 있습니다.
PC1 및 PC2 는 개인 LAN에 있으며 PC1 은 PC2 로 알려진192.168.0.2
PC2 와 PC3 은 다른 LAN에 있으며 PC2 는 PC3 에192.168.123.101
어떻게 연결할 수 PC1 에서 PC3 SSH와 함께.
다음과 같은 것이 있습니까?
ssh user@192.168.0.2 -via user@192.168.123.101
답변
ssh -o 'ProxyCommand ssh -W %h:%p user@192.168.123.101'
그런 다음 간단하게 실행할 수 있습니다 ssh PC1
.
에있는 별칭을 통해 가장 잘 사용됩니다 ~/.ssh/config
:
Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh -W %h:%p user@192.168.123.101
-W
옵션 이없는 구 버전의 OpenSSH (이것은 ≤5.4라고 생각합니다)에서 netcat 이 PC2에서 사용 가능한지 확인 하고 사용하십시오
Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh user@192.168.123.101 nc %h %p
답변
SSH를 사용하면 명확한 해결책이 있습니다.
-
로컬 컴퓨터
~/.ssh/config
에서 다음을 갖도록 설정하십시오 .host WhatYouWillCallTheConnection hostname the.gateway.server.address.com user YourUsernameOnTheGateway
-
연결하려는 게이트웨이와 최종 서버 모두에서 로컬 클라이언트의 공개 키가
~/.ssh/authorized_keys
-
게이트웨이 시스템
~/.ssh/authorized_keys
에서 클라이언트의 공개 키를 지정하는 행의 시작 부분에서 다음과 같이 강제 명령을 추가하도록 변경해야합니다.command="ssh -A user_name@ServerTheGatewaySees.ButTheClientCant.net" ...yourPublicKey....
는 -A
당신이 암호를 모든 시간을 보내지 같이 할 경우 에이전트를 전달하는 것입니다 …
이렇게하면 언제든지 ssh WhatYouWillCallTheConnection
게이트웨이를 통해 바로 실행되고 다른 쪽의 서버에 투명하게 연결됩니다.
답변
포트 포워딩이 유용 할 수 있습니다.
PC1에서 :
~# ssh -fN -L 22:PC3:7777 -l <user> PC2
7777은 모든 포트 일 수 있습니다 (아직 사용하지 않는 경우). 나는 그 숫자와 +1 (7778, 7779 등)로 관리 할 수있는 “주문”을 좋아한다.
이 작업이 완료되면 PC1의 로컬 포트 7777에서 PC3의 포트 22로 ‘투명한’터널이 생깁니다.
~# ssh -l <user> -p 7777 localhost
그리고 당신은 PC3에 있어야합니다.
SOCKS 프록시를 설정하려는 경우 -D를 사용하여 포트를 동적으로 전달할 수도 있습니다.
~# ssh -D <someport> -fN -L 22:PC3:7777 -l <user> PC2
건배!
답변
이것에 대한 2017+ ( ssh v7.3 부터 )는 ProxyJump입니다 .
ssh -J user@jumphost user@destination
의 약자 :
ssh -o "ProxyJump user@jumphost" user@destination
다음 ssh dest
과 같이 ~/.ssh/config
스 니펫 을 사용하여 단축 할 수 있습니다 .
Host jump
User MyJumpHostUser
Hostname Jump.host.tld
Host dest
ProxyJump jump
User MyDestUser
Hostname des.tin.ati.on
답변
내가 아는 유일한 해결책은 Belier 를 사용한 ssh 스크립팅입니다 .
Belier를 사용하면 SSH 연결을 통해 셸을 열거 나 원격 컴퓨터에서 명령을 실행할 수 있습니다. Belier의 주요 기능은 작업을 실현하기 전에 여러 중간 컴퓨터를 교차 할 수 있다는 것입니다.
얼마 전 MIT Lincoln Laboratory 홈페이지 에서이 README.sshhop 을 찾았 지만 이에 대한 추가 정보를 찾을 수 없었습니다. 누군가 더 알고 있습니까?