액세스할 수 없는 클라이언트 시스템에서 공개적으로 액세스할 수 없는 서버의 원격 sshfs 디렉터리를 어떻게 마운트합니까?

액세스할 수 없는 클라이언트 시스템에서 공개적으로 액세스할 수 없는 서버의 원격 sshfs 디렉터리를 어떻게 마운트합니까?

이것은 확장입니다질문작성자: @Andre

중간 시스템을 통해 원격 SSHFS를 마운트하는 방법은 무엇입니까? 터널?

내 상황은 원격 디렉터리를 마운트하려는 경우와 동일하지만 차이점은 두 컴퓨터 모두 인터넷에 공개적으로 노출 A되지 않는다는 것입니다. 내 로컬 워크스테이션입니다.BA

그래서 나는 에서 ssh를 A -> B할 수 없습니다 B -> A.

B -> C제가 자주 하는 일은 C임대한 가상 서버(VPS)에서 역방향 연결을 설정하는 것입니다. 이 연결을 수행하고 연결이 끊어지면 다시 연결하는 스크립트는 @reboot키에 의해 시작됩니다 cron.

user@pcB $ ssh -R 2048:localhost:22 -p<port> user@serverC

그런 다음 A -> B중간 길을 택합니다 A -> C -> B.

user@pcA $ ssh serverC
user@serverC $ ssh -p 2048 user@localhost
user@pcB $ # okay, logged in.

pcB:/home/user에 디렉토리를 마운트하는 방법을 찾고 있습니다 pcA.

SSH를 통해 다른 컴퓨터에 연결하는 방법A -> C <- B비슷하지만 제공된 솔루션이 이 경우에는 작동하지 않습니다 . 제 경우에는 연결 매핑이 A -> C -> B.

답변1

생각보다 쉽습니다!

우리가 해야 할 일은 2048포트를 serverC포트에 바인딩하는 것뿐입니다 pcA. 단순화를 위해 동일한 포트 번호를 사용합니다 2048.

user@pcA $ ssh -L 2048:localhost:2048 user@serverC

이 터미널 창을 열어 두어야 합니다.

pcB:/home/user그런 다음 로컬 설치 디렉터리는 pcA다음과 같습니다.

sshfs -o port=2048 user@localhost:/home/user/ /mnt/pcB

좋은 부작용:freeNX이는 또는 vnc검색 과 같은 효율적인 X 서버 연결을 사용할 수도 있음을 의미합니다 . 머신 pcB에 연결하고 올바른 자격 증명(사용자 이름/비밀번호)을 사용하기만 하면 됩니다 !localhost:2048pcB

연결을 위해 터미널을 열어두지 않으려면 다음을 사용할 수 있습니다.

ssh -NfL 2048:localhost:2048 user@serverC

그렇게 하면 고용주/조직의 보안 정책을 위반할 수 있으므로 적절한 권한이 있는지 확인하십시오.

관련 정보