Utilizzando SCP o SFTP con il mio file di configurazione SSH?


44

Forse il mio google-foo non mi riesce qui ... Mi piacerebbe connettermi e caricare un file di dump mysql tramite terminale usando SFTP o SCP sul mio server remoto usando il mio file di configurazione ssh. Secondo la documentazione che ho trovato, dovrei essere in grado di fare questo:

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

Ho anche stanco l'alias nella mia configurazione:

sftp -F db.sql.gz myalias /tmp

Quando eseguo i due precedenti, ottengo semplicemente una stampa dei possibili comandi, -Fessendo uno di questi.

Posso già collegarmi via ssh usando il collegamento nella mia configurazione locale, quindi so che funziona:

ssh myalias

** Nota: mi collego utilizzando una coppia di chiavi privata / pubblica, quindi non ho mai bisogno di inserire una password. Alla coppia di chiavi è associata una passphrase ma il portachiavi di OS X lo ha ricordato la prima volta che mi sono connesso.

... quindi non sono sicuro di cosa sto facendo di sbagliato.

Risposte:


46
  1. Dal testo di aiuto: " ... [-F ssh_config] ..."

    Secondo quanto sopra, si -Faspetta un argomento: percorso di un file di configurazione OpenSSH ~/.ssh/configo simile. Ma invece gli stai dando un dump SQL con gzip.

    Poiché plain ssh myaliassta già funzionando, non hai nemmeno bisogno -Fdell'opzione qui. Mi sftp myaliasconnetterei semplicemente al server.

  2. Tuttavia, il sftpclient OpenSSH non supporta il caricamento di file come si sta tentando; può solo scaricare file (usando la sintassi host:path) o lavorare in modalità interattiva. Per il caricamento, è necessario utilizzare la modalità interattiva ...

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

    ... o lo scpstrumento:

    scp db.sql.gz myalias:/tmp
    

    o

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

(sftp ha una modalità batch in cui può leggere i comandi da un file, usando -b, ma è più semplice da usare scpper i singoli upload.)

Ci sono anche altri client SFTP: lftp è buono per l'uso interattivo, mentre l' arricciatura può essere più semplice da automatizzare. Per i backup e simili, è anche possibile utilizzare rsync (che esegue il proprio protocollo ma ancora all'interno di SSH).


caspita è perfetto, ha funzionato benissimo! Sto solo acquisendo familiarità con il terminale, quindi questo sarà davvero utile in futuro.
Danny Englander,

0

Problema causato dalla configurazione di ForwardAgent come di seguito,

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

Nel mio caso, era dovuto al fatto che "ForwardAgent" nella configurazione ssh causava il blocco di scp. Una volta commentato, ha funzionato per me.

Inoltre, potresti avere una copia del file con la riga ForwardAgent commentata e usare scp -F per farlo funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.