전달된 SSH 에이전트와 함께 scp 사용

전달된 SSH 에이전트와 함께 scp 사용

scp현재 로컬 컴퓨터의 SSH 키를 사용하여 한 서버에서 다른 서버로 파일을 전송 하려고 합니다 .

현재 사용하고 있는 명령은 다음과 같습니다.

sudo scp -r -o "ForwardAgent yes" <new_folder> <second-server-path>

나는 팔로우했다이 github 문서내 SSH 에이전트가 두 번째 서버의 터미널로 전달되었는지 확인했습니다.

-o "ForwardAgent yes"~에서이 참조man scp, 하지만 내 참조 에는 나타나지 않습니다 .

그러나 이 모든 일이 있은 후에도 명령은 여전히 ​​암호를 묻습니다(우리는 이를 피하려고 노력하고 있습니다). SSH 전달을 사용하는 방법에 대한 아이디어가 있습니까?

답변1

  • scp 프록시 전달은 지원되지 않습니다.(코드에서 비활성화되도록 하드코딩되어 있음) 따라서 이는 귀하가 시도하는 것과 다를 수 있습니다.

  • 문제는 sudo연결이 ssh-agent환경 변수 SSH_AUTH_SOCK( echo $SSH_AUTH_SOCK)에 저장되고 해당 변수가 실행 중에 지속되지 않으므로 sudo두 가지 가능성이 있습니다.

    • sudo를 사용 하지 마십시오 scp. scp일반 위치에서 실행한 다음 sudo cp원하는 위치에서 파일을 실행하십시오.

    • 환경 보호를 시행합니다 sudo. -E스위치 변수를 사용하십시오 .

      sudo scp -r <new_folder> <second-server-path>
      
  • -3호스트(프록시에 액세스할 수 있는 곳)에서 두 번 인증되는 두 서버 간에 파일을 복사하려는 경우 스위치를 사용하십시오 .

답변2

OpenSSH 8.4(2020년 9월 27일 출시)에서 scp 및 sftp는 프록시 전달에 대한 지원을 추가했습니다.

https://www.openssh.com/txt/release-8.4

  • scp(1), sftp(1): scp 및 sftp에서 프록시 전달을 명시적으로 활성화하려면 -A 플래그를 허용합니다. ssh_config가 활성화하더라도 기본적으로 정방향 프록시는 없습니다.

경고하다!점프 호스트가 손상되거나 중간자 공격의 영향을 받을 때 프록시 전달을 사용하는 것은 보안 문제입니다.

점프 호스트를 사용하여 로컬 컴퓨터에서 내부 네트워크로 파일을 복사하는 경우 대상 서버에 대한 연결이 종단 간 암호화되고 점프 호스트가 액세스할 수 없기 때문에 프록시 전달 대신 ProxyJump를 사용하는 것이 좋습니다. 프록시를 사용하거나 데이터를 읽습니다.

점프 호스트를 사용하는 scp 명령의 예:

scp -o 'ProxyJump your.jump.host' myfile.txt remote.internal.host:/my/dir

고쳐 쓰다:

OpenSSH 8.4에는 원격 간 파일 전송을 위해 scp 및 sftp에 대한 프록시 전달이 추가되었습니다.

과거에는 첫 번째 호스트에서 자격 증명을 제공해야 하거나 트래픽이 로컬 시스템을 통해 라우팅되어야 했습니다.

OpenSSH 8.4 scp 및 sftp는 이제 프록시 전달이 가능합니다.

scp -A user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt

관련 정보