
비밀번호를 입력하지 않고 게이트웨이 서버를 통해 원격 PC에서 로컬 PC로 로그 파일을 가져오고 싶습니다. 게이트웨이 서버는 acctA@gatewayServer를 사용했습니다. 원격 PC는 acctB@remotePC를 사용했습니다.
게이트웨이와 원격 모두에 SSH 개인/공개 키를 설정했습니다.
내 로컬 PC에서 다음을 사용하여 두 계정의 비밀번호를 입력할 필요 없이 2홉을 통해 직접 원격 PC에 SSH로 연결할 수 있습니다.
ssh acctA@gatewayServer -t ssh acctB@remotePC
하지만 ProxyCommand와 함께 SCP를 사용하면 acctB의 비밀번호를 묻습니다. 왜?
scp -Cp -o "ProxyCommand ssh -q acctA@gateway -W remotePC:22" acctB@remotePC:/opt/logpath/log1.tgz log01.tgz
조언을 해줄 수 있는 사람에게 미리 감사를 표합니다.
답변1
가장 쉬운 방법은 이러한 라인을.ssh/config파일:
Host remotePC
User acctB
HostName remotePC
ProxyCommand ssh AcctA@gatewayServer nc %h %p 2> /dev/null
그런 다음 다음을 통해 간단하게 파일을 연결하거나 복사하는 데 사용할 수 있습니다.
ssh remotePC
scp acctB@remotePC:/home/AcctB/somefile .
이것이 작동하려면 netcat이 필요합니다(체크 안함) 명령이 게이트웨이 서버에 설치되었습니다.
정말로 한 줄만 고집한다면(그러나 이 내용을 모두 기억할 수는 없습니다), 여기 있습니다:
ssh -o "ProxyCommand ssh acctA@gatewayServer nc -w 1 %h 22" acctB@remotePC
scp도 마찬가지입니다.