Usando SCP ou SFTP com meu arquivo de configuração ssh?

36

Talvez meu google-foo esteja falhando aqui ... Gostaria de conectar e fazer upload de um arquivo de despejo mysql via terminal usando SFTP ou SCP para meu servidor remoto usando meu arquivo de configuração ssh. De acordo com a documentação que encontrei, eu deveria ser capaz de fazer isso:

sftp -F db.sql.gz [email protected] /tmp

Eu também cansei o alias na minha configuração:

sftp -F db.sql.gz myalias /tmp

Quando eu faço os dois acima, eu simplesmente obtenho uma impressão de possíveis comandos, -F sendo um deles.

Eu já consigo conectar via ssh usando o atalho na minha configuração local bem, então sei que funciona:

ssh myalias

** Observação: estou conectando usando um par de chaves privada / pública, portanto, nunca preciso inserir uma senha. O par de chaves tem uma senha associada a ele, mas o OS X Keychain lembrou-se da primeira vez que me conectei.

... então não tenho certeza do que estou fazendo de errado.

    
por Danny Englander 07.05.2012 / 16:54

1 resposta

43
  1. Do texto de ajuda: " ... [-F ssh_config] ... "

    De acordo com o acima, -F espera um argumento: caminho para um arquivo de configuração do OpenSSH, ~/.ssh/config ou similar. Mas você está dando um despejo SQL gzipped em seu lugar.

    Como o ssh myalias simples já está funcionando, você nem precisa da opção -F aqui. Apenas sftp myalias se conectaria ao servidor.

  2. No entanto, o cliente OpenSSH sftp não suporta o upload de arquivos como você está tentando; só pode baixar arquivos (usando a sintaxe host:path ) ou trabalhar no modo interativo. Para fazer o upload, você precisa usar o modo interativo ...

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

    ... ou a ferramenta scp :

    scp db.sql.gz myalias:/tmp
    

    ou

    scp db.sql.gz [email protected]:/tmp
    

(o sftp tem um modo em lote no qual ele pode ler comandos de um arquivo, usando -b , mas é mais simples usar scp para uploads únicos.)

Existem outros clientes SFTP também - o lftp é bom para uso interativo, enquanto o curl pode ser mais fácil de automatizar. Para backups e tal, você também pode usar o rsync (que executa seu próprio protocolo, mas ainda dentro do SSH).

    
por 07.05.2012 / 17:07