Perhaps my google-foo is failing me here... I'd like to connect and upload a mysql dump file via terminal using SFTP or SCP to my remote server using my ssh config file. According to documentation I've found, I should be able to do this:
sftp -F db.sql.gz /tmpI have also tired the alias in my config:
sftp -F db.sql.gz myalias /tmpWhen I do the two above, I simply get a print out of possible commands, -F being one of them.
I can already connect via ssh using the shortcut in my local config just fine so I know that works:
ssh myalias**Note: I am connecting using a private / public key pair so I never need to enter a password. The key pair does have a passphrase associated with it but OS X Keychain remembered that the first time I connected.
... so I am not sure what I am doing wrong.
2 Answers
From the help text: "
... [-F ssh_config] ..."According to the above,
-Fexpects one argument: path to an OpenSSH configuration file,~/.ssh/configor similar. But you are giving it a gzipped SQL dump instead.Since plain
ssh myaliasis already working, you don't even need the-Foption here. Justsftp myaliaswould connect to the server.However, the OpenSSH
sftpclient does not support uploading files like you are trying to; it can only download files (using the syntaxhost:path) or work in interactive mode. For uploading, you need to use either the interactive mode...$ sftp myalias sftp> cd /tmp sftp> put db.sql.gz...or the
scptool:scp db.sql.gz myalias:/tmpor
scp db.sql.gz :/tmp
(sftp does have a batch mode in which it can read commands from a file, using -b, but it is simpler to use scp for single uploads.)
There are other SFTP clients as well – lftp is good for interactive use, while curl can be easier to automate. For backups and such, you could also use rsync (which runs its own protocol but still inside SSH).
1Problem caused by ForwardAgent config as below,
Host dockervm HostName x.x.x.x User root Preferredauthentications publickey ForwardAgent yesMy case, it was due to the 'ForwardAgent' on the ssh config causing the scp to hang. Once commenting it out, worked for me.
Also, you could have an copy of the file with the ForwardAgent line commented and use scp -F to get it work.