나에게 네트워크는 매우 "불투명"한 것이며 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 .