사무실 컴퓨터에서 노트북으로 파일을 다운로드하고 싶습니다.
내 사무실 컴퓨터에서 조직 서버로 SSH를 수행한 다음 서버에서 내 사무실 컴퓨터로 SSH를 수행할 수 있습니다.
조직 서버에서 허용되는 유일한 명령은 ssh, ssh1 및 ssh2입니다.
서버를 통해 사무실(원격) 컴퓨터에서 노트북(로컬) 컴퓨터로 파일을 다운로드하려면 어떻게 해야 합니까?
답변1
최신 OpenSSH(8.0)를 사용하는 경우현지의,당신은 그것을 사용할 수 있습니다-J
(점프) 스위치:
scp -J user@intermediate user@target:/path
이전 버전(7.3 이상)의 경우 다음을 사용할 수 있습니다.ProxyJump
지시하다, 또는 명령줄에서:
scp -o ProxyJump=user@intermediate user@target:/path
또는 ssh_config
@Ángel의 답변에서 알 수 있듯이 파일에서.
포트 전달 과 같은 다른 옵션이 있으며 ProxyCommand
이전 버전의 OpenSSH에서도 사용할 수 있습니다. 이러한 내용은 다음과 같습니다.OpenSSH는 멀티홉 로그인을 지원합니까?
답변2
이전 답변에서는 ProxyJump 지시문(OpenSSH 7.3에 추가됨)을 사용하여 중간 서버(보통 호스트라고도 함)를 통해 연결하는 방법을 언급했지만 명령줄 인수로만 언급했습니다.
나중에 연결하지 않을 머신이 아니라면 에서 구성하는 것이 가장 좋습니다 ~/.ssh/config
.
다음과 같은 파일을 배치하겠습니다.
Host office-machine
Hostname yochay-machine.internal.company.local
ProxyJump bastion-machine
Host bastion-machine
Hostname organization-server.company.com
...
ProxyJump를 지원하지 않는 이전 버전의 OpenSSH를 사용하는 경우 이를 동등한 버전으로 교체할 수 있습니다.
ProxyCommand ssh -W %h:%p bastion-machine
로컬 SSH 버전이 매우 오래된 버전이고 지원되지 않는 경우 -W
:
ssh bastion-machine nc %h %p
마지막 요구 사항은 nc
요새 시스템을 설치하는 것입니다.
SSH의 좋은 점은 파일의 각 대상을 구성할 수 있고 훌륭하게 스택된다는 것입니다. 따라서 모든 도구(ssh, scp, sftp...)에서 호스트 이름을 사용하게 됩니다. office-machine
왜냐하면 직접 연결하고 ssh_config를 기반으로 연결하는 방법을 알아내기 때문입니다. 모든 호스트가 특정 요새를 통과하도록 하는 등의 와일드카드를 사용할 수도 Host *.internal.company.local
있으며 이는 모든 호스트에 적용됩니다. 올바르게 구성한 경우 1홉 연결과 20홉 연결 간의 유일한 차이점은 연결 시간이 더 느리다는 것입니다.
답변3
때로는 파이프만 사용할 수도 있습니다. 그 때는 바로 오늘입니다.
ssh -A user@host1 ssh user@host2 cat filename > filename
업로드할 수도 있습니다.
ssh -A user@host1 ssh user@host2 cat \\\> filename < filename
예, 프록시 등과 관련된 다른 솔루션이 있지만 이를 수행하는 방법을 아는 것이 유용합니다.