나는 three 컴퓨터를 가지고 있습니다.
PC1 및 PC2는 사설 LAN에 있습니다. 여기서 PC1은 PC2로 192.168.0.2
PC2 및 PC는 다른 LAN에 있습니다. 여기서 PC2는 PC로 192.168.123.101
SSH로 PC에서 PC1에 어떻게 연결할 수 있습니까?.
다음과 같은 것이 있습니까?
ssh [email protected] -via [email protected]
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를 의미한다고 생각 함)의 경우 netcat 이 PC2에서 사용 가능한지 확인하고
Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh [email protected] 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 [email protected]" ...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 [email protected] [email protected]
, 약어 :
ssh -o "ProxyJump [email protected]" [email protected]
다음과 같이 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 을 찾았지만, 그것에 대한 더 이상의 정보를 찾을 수 없었습니다. ?