정기적으로 원격 터미널 세션에서 로컬 컴퓨터로 파일을 복사하려고합니다. 일반적으로 원격 세션에서 로그 아웃하고 로컬에서 scp 전송을 호출하여 파일을 원격에서 로컬로 복사합니다. 그러나 이것은 약간 긴 바람을 느낍니다. 시간을 절약하기 위해 SSH를 통해 원격으로 로그인 한 상태에서 파일을 전송하고 싶습니다. 로컬 컴퓨터가 동적 IP 범위에서 인터넷에 연결되어 있으므로 원격으로 연결하는 방법을 잘 모르겠습니다. 그러나 원격 세션이 랩톱에서 시작될 때 반드시 랩탑으로 돌아갈 수있는 바로 가기가 scp에 있어야합니다 … 맞습니까?
답변
이를 위해 SSH 터널링 을 사용할 수 있습니다 .
터널링을 사용하면 로컬 컴퓨터에서 원격 컴퓨터로 또는 원격 컴퓨터에서 로컬 컴퓨터로 TCP 포트를 전달할 수 있습니다. 방화벽 뒤의 원격 시스템에서 로컬 시스템으로 SMTP 또는 IMAP 포트를 전달하는 데 자주 사용하고 로컬에서 실행되는 것처럼 로컬로 서비스에 액세스합니다.
로컬 시스템에서 원격 시스템으로 포트 22 (SSH)를 전달하려면 다음을 시도하십시오.
ssh -R12345:localhost:22 yourremoteuser@remotemachine
(localhost는 원격 시스템의 로컬 이름을 나타냅니다)
이것을 실행하면 다음을 사용하여 집으로 돌아갈 수 있습니다.
ssh -p12345 yourlocaluser@127.0.0.1
scp를 사용할 때 다음과 같은 작업을 수행합니다 (scp에는 포트 전달을위한 대문자 P가 있음).
scp -P12345 filename 127.0.0.1:/tmp/filename
다른 방향으로의 포트 전달 (원격에서 로컬로)은 -R 대신 -L을 사용합니다.
위의 명령은 터미널 ssh 클라이언트를 사용한다고 가정합니다. PuTTY for Windows와 같은 그래픽 클라이언트도 터널링을 지원합니다
답변
원격 시스템의 명령 줄에서 다음을 시도하십시오. 라우터에서 포트 전달을 활성화해야 할 수도 있습니다.
scp <file on remote machine> ${SSH_CLIENT%% *}:<directory on local machine>
출처 : 파일을 연결중인 호스트로 쉽게 scp (commandlinefu.com)
답변
아마 zssh ?
zssh (Zmodem SSH)는 보안 쉘 (ssh)을 사용하는 동안 원격 시스템으로 파일을 대화식으로 전송하기위한 프로그램입니다. scp의 편리한 대안으로, 다른 세션을 열지 않고 파일을 전송하고 자신을 다시 인증 할 수 있습니다.
zssh는 ssh를위한 대화식 래퍼입니다
그것은 zmodem 파일 전송의 훌륭한 rz, sz 구현을 사용합니다.
답변
이 질문을 어지럽히면 이것이 쉽게 달성하고자 하는 것입니다.
관련 답변은 다음과 같습니다. 홈 네트워크 외부에있을 때 원격 시스템에서 로컬 시스템으로 SCP를 보내려면 어떻게해야합니까?
네트워크 외부에서 ssh에 대한 액세스를 허용해야합니다. 광대역 라우터의 포트를 서버의 LAN IP로 전달하면됩니다. 그러나 외부에서 ssh 액세스를 허용하는 데 약간의 보안 문제가 있으므로 ssh, 부분적으로 키 기반 인증을 보호하고 비밀번호 인증을 완전히 비활성화하는 방법을 찾고 싶을 수도 있습니다.
답변
한 가지 해결책은 로컬 시스템에서 ssh 세션을 일시 중단하고 로컬 시스템에서 복사를 수행 한 다음 중단 한 ssh 세션을 다시 시작하는 것입니다.
예를 들어, myuser @ remote에 연결되어 있고 lol.txt 파일 을 로컬 컴퓨터 에 복사하려고 한다고 가정 하십시오 . 먼저 로컬 컴퓨터에서 ssh를 일시 중단하고 싶습니다. 일반적으로 Ctrl– Z를 사용 하여 일시 중단하지만 원격 쉘로 전송되므로 ssh에서는 작동하지 않습니다. 대신, ssh escape sequence를 사용해야합니다 Enter~. 따라서 ssh를 일시 중단하려면 Enter~ Ctrl-를 누르십시오 Z. 이제 로컬 컴퓨터에서 명령을 실행할 수 있으며
user@localmachine:~$ scp user@remote:/path-to-file/lol.txt /dest-path/lol.txt
파일을 복사 한 다음 정확히 ssh로 돌아갑니다.
user@localmachine:~$ fg