저는 아주 간단한 작업을합니다. ssh를 사용하여 내 로컬 컴퓨터의 트래픽을 원격 컴퓨터의 특정 포트로 전달하는 터널을 만들고 싶습니다. 내가 명령 줄에서이 작업을 수행 할 수 있습니다 다음순수한 Python을 사용하여 로컬 SSH 터널을 쉽게 만드는 방법
ssh -N -L 123:127.0.0.1:456 [email protected]
은 내가 실행하는 경우 :
telnet localhost 123
그것이 내가 관리했습니다 remotehost
에 로그인
telnet 127.0.0.1 456
를 실행하는 것과 동일입니다 이것은 라인을 따라 뭔가;
subprocess.Popen(['ssh', '-N', '-L', '%i:127.0.0.1:%i' % (new_port, old_port), ssh_user + '@' + ip_addr])
하지만 지금은 그만두고 파이썬 만 사용하십시오. 외부 프로세스가 필요 없습니다.
fabric.context_managers.remote_tunnel을 사용해 보았습니다.하지만 잘못 이해하지 않은 경우 로컬 장치가 아닌 원격 위치에서 시작하는 터널을 만들기위한 것입니다. 즉, 원격 시스템으로의 SSHing과 거기에서 SSH 터널을 만드는 것과 같습니다. 이것은 내 목적에 어리 석다. 원격 호스트를 실제로 로컬 시스템으로 설정할 수 있다고 생각하지만 비효율적이며 정직하게도이를 수행하는 방법조차 모릅니다.
나는 또한 forward.py on paramiko을 시도했으며 개인 키가 암호화되어 있기 때문에 작동하지 않습니다. 나는 그것을 처리하기 위해 스크립트를 수정하고, 필요에 따라 스크립트를 단순화하고 싶지만, 스크립트와 paramiko 라이브러리는 모두 힘들며 시작하는 방법을 모른다.
확실히 쉬운 방법이 있습니다. 나는 아직 너무 가까이서있는 것처럼 보인다.
왜 Popen 또는 패브릭을 사용하지 않으시겠습니까? – Harman