내 ssh 구성 파일과 함께 SCP 또는 SFTP를 사용합니까?


44

아마도 내 Google-foo가 여기에서 실패합니다 ... SFTP 또는 SCP를 사용하는 터미널을 통해 mysql 덤프 파일을 ssh 구성 파일을 사용하여 원격 서버에 연결하고 업로드하고 싶습니다. 내가 찾은 문서에 따르면 다음을 수행 할 수 있어야합니다.

sftp -F db.sql.gz webost@staging2.example.com /tmp

또한 구성에서 별칭을 지쳤습니다.

sftp -F db.sql.gz myalias /tmp

위의 두 가지를 수행하면 가능한 명령 -F중 하나를 인쇄하여 얻을 수 있습니다.

로컬 구성의 바로 가기를 사용하여 ssh를 통해 이미 연결할 수 있으므로 잘 작동합니다.

ssh myalias

** 참고 : 개인 / 공개 키 쌍을 사용하여 연결하므로 암호를 입력 할 필요가 없습니다. 키 페어에는 암호가 연결되어 있지만 OS X Keychain은 처음 연결할 때를 기억했습니다.

... 그래서 내가 뭘 잘못하고 있는지 잘 모르겠습니다.

답변:


46
  1. 도움말 텍스트에서 : " ... [-F ssh_config] ..."

    위의 내용에 따르면 -FOpenSSH 구성 파일의 경로 ~/.ssh/config또는 이와 유사한 하나의 인수가 필요합니다 . 그러나 대신에 gzipped SQL 덤프를 제공합니다.

    일반 ssh myalias이 이미 작동하고 있으므로 -F여기 에서도 옵션이 필요하지 않습니다 . 그냥은 sftp myalias서버에 연결합니다.

  2. 그러나 OpenSSH sftp클라이언트는 파일 업로드를 지원하지 않습니다. 파일을 다운로드하거나 (구문 사용 host:path) 대화식 모드로 작업 할 수 있습니다. 업로드하려면 대화식 모드 중 하나를 사용해야합니다.

    $ sftp myalias
    sftp> cd /tmp
    sftp> put db.sql.gz
    

    ... 또는 scp도구 :

    scp db.sql.gz myalias:/tmp
    

    또는

    scp db.sql.gz webost@staging2.example.com:/tmp
    

(sftp에는 파일을 사용하여 파일에서 명령을 읽을 수있는 배치 모드가 -b있지만 scp단일 업로드 에 사용하는 것이 더 간단합니다 .)

다른 SFTP 클라이언트도 있습니다. lftp 는 대화식 사용에 적합하지만 curl 은 자동화하기가 더 쉽습니다. 백업 등의 경우 자체 프로토콜을 실행하지만 여전히 SSH 내부에있는 rsync 를 사용할 수도 있습니다 .


와우 이거 완벽 해, 잘 했어! 터미널에 익숙해 져서 앞으로 유용 할 것입니다.
Danny Englander

0

아래와 같은 ForwardAgent 설정으로 인한 문제

Host dockervm
   HostName x.x.x.x
   User root
   Preferredauthentications publickey
   ForwardAgent yes

제 경우에는 ssh 구성의 'ForwardAgent'가 scp를 정지시키는 원인이었습니다. 의견을 말하면 나를 위해 일했습니다.

또한 ForwardAgent 행이 주석 처리 된 파일의 사본을 보유하고 scp -F를 사용하여 파일을 작동시킬 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.