
SSH 구성 파일을 사용하여 SFTP 또는 SCP를 사용하여 터미널을 통해 원격 서버에 MySQL 덤프 파일을 연결하고 업로드하고 싶습니다. 내가 찾은 문서에 따르면 다음과 같이 할 수 있습니다.
sftp -F db.sql.gz [email protected] /tmp
또한 내 구성에서 별칭을 사용해 보았습니다.
sftp -F db.sql.gz myalias /tmp
위의 두 가지 작업을 수행하면 가능한 명령 중 하나가 인쇄되어 출력됩니다 -F
.
로컬 구성의 바로가기를 사용하여 SSH를 통해 이미 연결할 수 있으므로 제대로 작동한다는 것을 알 수 있습니다.
ssh myalias
메모: 개인/공개 키 쌍을 사용하여 연결하므로 비밀번호를 입력할 필요가 없습니다. 키 쌍에는 이와 관련된 암호 문구가 있지만 OS X 키체인은 처음 연결했을 때 이를 기억했습니다.
그래서 내가 뭘 잘못하고 있는지 잘 모르겠나요?
답변1
도움말 텍스트에서: "
... [-F ssh_config] ...
"위에 따르면
-F
OpenSSH 구성 파일에 대한 경로~/.ssh/config
또는 이와 유사한 하나의 인수가 필요합니다. 하지만 대신 gzip으로 압축된 SQL 덤프를 제공하고 있습니다.plain은
ssh myalias
이미 작동하고 있으므로 여기서는 옵션이 필요하지 않습니다-F
. 그냥sftp myalias
서버에 연결하면 됩니다.그러나 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 [email protected]:/tmp
(sftp에는 를 사용하여 파일에서 명령을 읽을 수 있는 배치 모드가 있지만 단일 업로드에 -b
사용하는 것이 더 간단합니다 scp
.)
다른 SFTP 클라이언트도 있습니다 –lftp대화식 사용에는 좋지만곱슬 곱슬하다자동화하기가 더 쉬울 수 있습니다. 백업 등의 경우 다음을 사용할 수도 있습니다.재동기화(자체 프로토콜을 실행하지만 여전히 SSH 내부에 있음)
답변2
ForwardAgent 구성으로 인해 발생하는 문제는 아래와 같습니다.
Host dockervm
HostName x.x.x.x
User root
Preferredauthentications publickey
ForwardAgent yes
내 경우에는 SSH 구성의 'ForwardAgent'로 인해 scp가 중단되었습니다. 일단 주석을 달면 나를 위해 일했습니다.
또한 ForwardAgent 줄에 주석이 달린 파일 복사본을 갖고 scp -F를 사용하여 작동하게 할 수도 있습니다.