호스트 A에 앉아 비밀번호를 사용하여 점프 서버 B에 연결한 다음 개인 키(비밀번호 없음)를 사용하여 서버 C에 연결합니다. 거기에서 파일을 호스트 A에 복사하려고 합니다. 사용:
scp -oProxyJump=user1@serverB jump:"/home/user2/file.txt" /home/user1/Desktop/
작동하지 않습니다. 서버 B로 이동하기 위한 비밀번호를 요청하면 다음과 같은 결과를 얻습니다.
..
..
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user1/.ssh/id_rsa
debug1: Trying private key: /home/user1/.ssh/id_dsa
debug1: Trying private key: /home/user1/.ssh/id_ecdsa
debug1: Trying private key: /home/user1/.ssh/id_ed25519
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: No more authentication methods to try.
Permission denied (publickey,keyboard-interactive).
분명히 문제는 scp가 서버 B(있는 곳)로 점프하는 대신 호스트 A의 키를 사용하려고 한다는 것입니다. 로컬 서버 대신 점프 서버의 인증 키를 사용하도록 scp에 지시하는 방법이 있습니까? 어쩌면 거기에:?
scp -o IdentityFile
SSH 구성 파일을 사용하지 않고 옵션이 있는 명령만 사용하는 것이 좋습니다
답변1
나는 그런 것이 없다고 생각합니다. 사용하면 ProxyJump
호스트 A의 SSH/SCP 클라이언트가 서버 B를 통해 터널링합니다. 즉, SSH/SCP 클라이언트가 서버 B에서 실행되지 않으므로 쉬운 방법이 없습니다. 호스트 B에서는 개인 키를 사용합니다.
요구 사항에 따라 다음이 해결책이 될 수 있습니다.
ssh serverB ssh jump cat /home/user2/file.txt > /home/user1/Desktop/file.txt