파일 전송을 위해 SSH 터널을 만드시나요?

파일 전송을 위해 SSH 터널을 만드시나요?

나에게 네트워크는 매우 "불투명"한 것이며 SSH에 대한 많은 튜토리얼을 읽어도 파일을 전송하기 위해 기본 터널을 만드는 방법을 이해하지 못합니다.

구성은 다음과 같습니다.

My Computer --[Internet]--> Bridge Machine --[Local Network]--> Final Machine

현재 나는 다음을 수행합니다.

1) Connect to the Bridge Machine with :
ssh -X [email protected]

2) Connect to the Final Machine with :
ssh -X username@finalmachine

3) I copy the address of files I need (for example .../mydirectory)

4) Then I deconnect from the finalmachine with :
exit

5) I copy the files to the bridge :
scp -r username@finalmachine:/.../mydirectory .

6) I deconnect from the bridge with :
exit

7) I copy the files to my machine :
scp -r [email protected]:/.../mydirectory .

꽤 복잡합니다. 내 질문은 기본입니다. SSH 터널을 사용하여 이를 단순화하는 방법은 무엇입니까?

(그리고 각 명령줄의 실제 기능을 이해하고 마법처럼 사용하지 않도록 작성하는 각 명령줄의 의미를 설명해 주세요. 또한 일부 포트 번호를 사용하는 경우 완전히 임의의 숫자를 선택할 수 있는지 설명해 주세요. 또는 특정 항목을 선택해야 하는 경우.)

답변1

SSH 구성 파일을 설정합니다.

~/.ssh/config

이 파일은 다양한 방법으로 도움이 되지만 궁극적으로는 한 단계로 이 모든 작업을 수행할 수 있습니다.

먼저 각 머신에 대한 별칭을 설정합니다.

Host bridge
User username

Host final
User username

이제 "ssh -X bridge"를 사용하여 첫 번째 머신에 연결할 수 있습니다.

다음 단계에서는 확인하기 위해 각 머신에 netcat이 필요합니다("which nc" 시도). 그런 다음 '최종' 머신 구성과 함께 ProxyCommand를 사용하여 다음과 같이 읽습니다.

Host final
User username
ProxyCommand ssh -CAYq bridge exec nc %h %p

이 명령은 중앙 시스템을 통해 원하는 모든 것을 포트 %p의 호스트 %h로 보냅니다(즉, 이 연결이 열려 있는 한 다른 포트를 통해 다른 앱 데이터를 보낼 수 있음을 의미합니다).

키가 설정되어 있으면 비밀번호 프롬프트가 표시되지 않습니다. 그렇지 않은 경우 브리지를 먼저 입력한 후 최종 비밀번호를 입력하라는 메시지가 표시됩니다.

이제 "ssh final"이 다음과 같이 작동할 것입니다.

scp -r final:/.../directory .

관련 정보