나는 가지고있다삼컴퓨터.
컴퓨터 1그리고컴퓨터 2개인 LAN에서컴퓨터 1우리 모두 알고 있듯이컴퓨터 2~처럼192.168.0.2
컴퓨터 2그리고컴퓨터 3다른 LAN에서컴퓨터 2우리 모두 알고 있듯이컴퓨터 3~처럼192.168.123.101
어떻게 연결하면 돼?컴퓨터 1~에서컴퓨터 3SSH를 통해.
다음과 비슷한 것이 있습니까?
ssh [email protected] -via [email protected]
답변1
ssh -o 'ProxyCommand ssh -W %h:%p [email protected]'
그런 다음 간단히 실행할 수 있습니다 ssh PC1
.
별칭을 통해 사용하는 것이 더 좋습니다 ~/.ssh/config
.
Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh -W %h:%p [email protected]
-W
해당 옵션이 없는 이전 버전의 OpenSSH(이것은 5.4 이하를 의미한다고 생각함)의 경우 다음을 확인하세요.인터넷 고양이PC2에서 사용 가능
Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh [email protected] nc %h %p
답변2
SSH를 사용하는 명확한 솔루션이 있습니다.
~/.ssh/config
다음 콘텐츠를 포함하도록 로컬 컴퓨터에 설정하세요 .host WhatYouWillCallTheConnection hostname the.gateway.server.address.com user YourUsernameOnTheGateway
연결하려는 게이트웨이 및 터미널 서버에서 로컬 클라이언트의 공개 키가 있는지 확인하세요.
~/.ssh/authorized_keys
게이트웨이 머신에서는
~/.ssh/authorized_keys
다음과 같이 클라이언트 공개 키를 지정하는 줄 시작 부분에 필수 명령을 추가하도록 변경해야 합니다.command="ssh -A [email protected]" ...yourPublicKey....
-A
항상 비밀번호를 보내는 것을 좋아하지 않는다면 프록시를 전달할 수 있습니다...
그렇게 하면, 그런 일을 할 때마다 ssh WhatYouWillCallTheConnection
게이트웨이를 통과해 투명하게 반대편에 있는 서버에 연결됩니다.
답변3
포트 포워딩이 유용할 수 있습니다.
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
건배!
답변4
내가 아는 유일한 해결책은 ssh 스크립트입니다사악:
Belier를 사용하면 SSH 연결을 통해 원격 컴퓨터에서 셸을 열거나 명령을 실행할 수 있습니다. Belier의 주요 기능은 작업을 완료하기 전에 여러 중간 컴퓨터를 확장하는 기능입니다.
나는 이것을 얼마 전에 발견했다.README.sshhopMIT 링컨 연구소 홈페이지에 올라와 있는데 더 이상 정보를 찾을 수가 없네요. 더 아는 사람 있나요?