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 등에서 이를 복제하는 방법은 모르겠습니다.