원격지에 로그인 한 상태에서 로컬의 IP 주소를 몰라도 원격지에서 로컬로 SCP가 가능합니까? 일반적으로 원격 세션에서 로그 아웃하고

정기적으로 원격 터미널 세션에서 로컬 컴퓨터로 파일을 복사하려고합니다. 일반적으로 원격 세션에서 로그 아웃하고 로컬에서 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를 일시 중단하고 싶습니다. 일반적으로 CtrlZ를 사용 하여 일시 중단하지만 원격 쉘로 전송되므로 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


답변

더 간단한 솔루션을 원하면 dropbox 계정을 열고 원격 컴퓨터로 이동하여 wget ( 여기 에서 수정 된 버전)을 수행 하십시오 .
wget --no-check-certificate https://www.dropbox.com/s/2123jshf/ABC.pdf?dl=1 -O abc.pdf


답변