두 대의 컴퓨터 A와 B가 있는데 서로 다른 서브넷에 있고 둘 다 별도의 방화벽 뒤에 있습니다. 기계 A는 B를 볼 수 있지만 B는 A를 볼 수 없습니다. 두 컴퓨터 모두에 루트가 아닌 사용자 계정이 있고 A에서 B로 SSH를 수행할 수 있습니다.B에서 SSH A로 접속할 수 있기를 원합니다., 그러나 직접 수행할 수는 없습니다.
중간 서버를 건너뛰기 위해 SSH를 통한 터널링을 사용해 보았지만 여기서 요구하는 내용은 다르며 무엇이라고 부를지 모르겠습니다. A에서 B로의 연결을 연 다음 해당 연결을 "역방향"으로 머신 B에서 사용하여 A에서 명령을 실행할 수 있는 방법이 있습니까?
답변1
간단히 대답하자면 '예'입니다. 방법은 다음과 같습니다.
machine-A$ ssh -R 127.0.0.1:2222:127.0.0.1:22 [ip__or_name_of_B]
그러면 다음을 수행할 수 B
있습니다 .ssh
A
machine-B$ ssh -p2222 127.0.0.1
이는 다음을 설명합니다.
localhost( )로 가는 포트의 모든 트래픽이 다시 터널링되어 localhost( 현재 로컬 측) 포트 로 전송되도록 원격 측( )에
A
터널을 만듭니다.-R
127.0.0.1
2222
127.0.0.1
22
명령 은 단지 터널의 입구인 localhost 포트로 이동하라고
B
말합니다 .ssh
2222