SSH를 통해 SSH 터널 설정

SSH를 통해 SSH 터널 설정

Linux 데스크톱의 VirtualBox에서 Windows 10 가상 머신이 실행되는 상황이 발생했습니다. 이 가상 머신(현재는 이 가상 머신만)은 원격 사무실에 대한 VPN 터널을 설정할 수 있습니다.

저는 현재 작은 라즈베리 파이를 가지고 있습니다. 현재 로컬 네트워크에 있으며 Linux 데스크탑에서 정기적으로 SSH로 연결하고, 일단 SSH에 접속하면 Pi에서 Linux 데스크탑 Git 저장소로 다시 가져올 수도 있습니다. 내 Windows 컴퓨터에서 git bash를 사용하여 ssh로 pi에 연결할 수도 있습니다.

이는 Linux와 pi가 모두 sshd를 실행하지만 Windows는 그렇지 않음을 의미합니다.

곧 이 원격 사무실로 pi를 이동할 예정이며, 이 위치와 Linux 데스크톱에서 pi와 ssh를 주고받을 수 있는 환경을 설정하고 싶습니다.

그래서 내 생각은 Windows 클라이언트를 사용하여 SSH 터널을 설정하는 것입니다. 실험적으로 여전히 내 Windows 컴퓨터의 로컬 환경에 있습니다.

ssh -L 9001:pi:22 pi@pi(이 예에서 pi는 pi의 로컬 사용자이기도 합니다.) 나는 이것이 포트 9001에서 pi의 sshd 서버로 트래픽을 전달할 것이라고 가정합니다.

그런 다음 Linux 데스크탑에서 ssh -l pi -p 9001 win이제 pi에 SSH로 접속할 수 있을 것으로 기대합니다.

하지만 그냥 멈춰있습니다.

내가 뭘 잘못했나요?

답변1

Windows 상자에서 성공적으로 ssh -l pi -p 9001 win수행할 수 있습니까? 시도해 보면 어떨까요 ssh -l pi -p 9001 127.0.0.1?

후자를 수행할 수 있지만 Linux 시스템에서는 동일한 작업을 수행할 수 없는 경우 포트 9001에서 로컬로만 수신 대기하고 있다는 것이 문제일 수 있습니다. ssh에 대한 매뉴얼 페이지, 특히 -L [bind_address:]port:host:hostport공개 측에서 포트 9001을 수신하려면 다음과 같이 터널을 설정할 수 있습니다 ssh -L *:9001:pi:22 pi@pi.

답변2

내가 올바르게 이해했다면 호스트 B에서 실행되는 SSH 데몬을 통해 호스트 A에서 호스트 C로 SSH를 원하십니까?

.ssh/config이는 호스트 A의 파일에서 약간의 트릭을 사용하여 수행할 수 있습니다.

Host hostc
   HostName hostb
   ProxyCommand ssh username@hostc nc %h %p 2>/dev/null

.ssh/config호스트 A에서 이 스탠자를 사용하면 ssh hostc호스트 B에서 연결을 프록시할 수 있습니다.

호스트 A가 Windows 시스템인 경우 cygwin의 openSSH 클라이언트가 이를 수행할 수 있습니다. PuTTY 등에서 이를 복제하는 방법은 모르겠습니다.

관련 정보