SSH 터널을 통한 rsync

SSH 터널을 통한 rsync
----------         /|                      /|             ------------
|  Home  |        | |                     | |             |    Work   |
|        |--------| |---------------------| |-------------|           |
|ssh-serv|   Firewall:Port-22=open     Firewall           |           |
----------        | |                     | |             ------------
                  |/                      |/

위 사진의 장면은 이렇습니다.

작업자는 업무용 컴퓨터에 액세스할 수 있으며 홈 SSH 서버도 설정되어 있습니다. 직원은 PC@Home에서 업무용 컴퓨터에 액세스하려고 하지만 회사 정책에 따라 Firewall@Work를 통한 액세스는 제한되지만 역방향 SSH 터널을 통해 연결하는 것은 허용됩니다. 따라서 작업자는 워크스테이션@Work에서 다음 명령을 실행합니다.

ssh -fN -R 19999:localhost:22 Home-user@Home

이제 그는 PC@Home에서 다음 명령을 실행하고 워크스테이션@Work의 SSH 서버에 연결할 수 있습니다.

ssh -v Work-user@localhost -p 19999

작업자가 rsync를 사용하여 기존 터널을 사용하여 자신의 PC@Home에서 자신의 워크스테이션@Work로 디렉터리를 복사할 수 있습니까?

답변1

당신이 찾고 있는 기능은 연결 공유라고 생각합니다. 파일 에 다음을 추가하세요 $HOME/.ssh/config.

ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r

발췌#1SSH로 할 수 있나요? 원격 서버 작업을 위한 생산성 팁

다행히 OpenSSH에는 연결된 서버에 다른 터미널을 더 빠르게 가져올 수 있는 기능인 연결 공유가 있습니다.

발췌 #2

공유 연결은 여러 터미널 창에 도움이 될 뿐만 아니라 원격 서버 간에 파일을 쉽게 복사할 수도 있습니다. SSH를 통해 서버에 연결한 다음 scp 명령을 사용하여 파일을 복사하면 scp는 기존 SSH 연결을 활용합니다. ...연결은 rsync, git 및 SSH를 사용하는 기타 명령과도 공유됩니다. 연결하다.

인용하다

답변2

명령을 제어할 수 있습니다 ssh(엄격히 말하면rsh이 명령( ssh현재는 기본값이지만)은 rsync두 가지 방법으로 사용할 수 있습니다.

  • RSYNC_RSH환경 변수 설정
  • -e깃발을 통과하여

ssh필요한 모든 플래그를 연결하도록 이들 중 하나를 설정할 수 있습니다.

환경 변수를 통해:

home$ RSYNC_RSH="ssh -p 19999"
home$ rsync somelocalfile Work-user@localhost:~

플래그 별 -e:

home$ rsync -e "ssh -p 19999" somelocalfile Work-user@localhost:~

답변3

터널과 같은 복잡한 SSH 설정을 처리하는 쉬운 방법은 다음과 같습니다.~/.ssh/config문서. 예를 들어 ssh -fN -R 19999:localhost:22 Home-user@Home터널을 생성하고 ssh -v Work-user@localhost -p 19999사용할 수 있다고 확신하는 경우 다음에 대한 별칭을 생성합니다.

Host work-tunnel
Hostname Home
Username Home-user
RemoteForward 19999 localhost:22

Host workstation
Hostname localhost
Username Work-user
Port 19999

ssh -fN work-tunnel그런 다음 Tunnel 설정을 실행 하고 ssh workstation를 사용하여 워크스테이션에 로그인합니다.

다른 애플리케이션에 관한 한 workstation이는 SSH를 통해 연결하는 다른 애플리케이션과 동일한 호스트입니다. 그들은 SSH가 뒤에서 무엇을 하는지 신경 쓰지 않습니다. 따라서 평소처럼 사용할 수 있습니다. 예를 들어 rsync somefile workstation:somedir파일을 워크스테이션에 복사합니다.

답변4

예, 작업자가 포트 22에서 SSH를 통해 액세스하고 있으므로 SSH 입출력은 방화벽을 통해 허용됩니다. 방화벽 접근 목록에서 SSH에 대해 작성된 정책이 없는지 확인할 수 있습니다.

관련 정보