![기존 SSH 체인을 통해 SCP를 사용하시나요? 가능한?](https://rvso.com/image/1552376/%EA%B8%B0%EC%A1%B4%20SSH%20%EC%B2%B4%EC%9D%B8%EC%9D%84%20%ED%86%B5%ED%95%B4%20SCP%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%8B%9C%EB%82%98%EC%9A%94%3F%20%EA%B0%80%EB%8A%A5%ED%95%9C%3F.png)
SCP는 파일을 복사할 때 새로운 연결을 설정하는데, 방화벽이 관련되어 있으면 연결이 어려울 수 있습니다.
예를 들어,
호스트-A <--> 호스트-B <--> 호스트-C <--> 호스트-D
- Host-A는 SSH를 통해 Host-B에 연결되고, Host-B는 SSH를 통해 Host-C에 연결된 다음 Host-D에 연결됩니다.
- Host-A는 Host-B 이외의 다른 컴퓨터에 연결할 수 없고, Host-B는 Host-A와 Host-C에만 연결할 수 있으며, Host-C는 Host-B와 Host-D에만 연결할 수 있으며, 마지막 Host-D는 Host-C에만 연결하세요.
명령(Host-D에서)scp /home/user/file 호스트-A:/home/user/newfile둘 사이에 새로운 SSH 터널을 만들려고 시도할 것인데, 이는 내가 원하는 것이 아닙니다. 기존 SSH 터널 체인이 파일이 Host-A에 도달할 때까지 이전 호스트를 통해 다시 복사하기를 원합니다.
어떻게 해야 하나요?
답변1
기존 연결을 다시 사용할 수 있습니다. 명령줄 스위치 -M
또는 (클라이언트) 구성 옵션을 사용하십시오 ControlMaster
. 보다이 답변자세한 내용은 StackOverflow에서 확인하세요.
나는 이것을 광범위하게 사용했는데, ControlPersist
지연 후에만 연결을 닫기 위해 to 와 결합되었습니다. 이렇게 하면 발생하는 연결 시간을 피하고 여러 번 닫았다가 다시 연결할 때 성능이 크게 향상됩니다(대화식 사용 중에 자주 하는 것처럼).
예를 들어 GitHub와 같은 일부 호스트에 연결하는 데는 제대로 작동하지 않으므로 이 옵션을 기본값으로 설정한 경우 이 옵션을 사용하지 않도록 특정 호스트를 명시적으로 제외해야 할 수도 있습니다.