Utiliser SCP ou SFTP avec mon fichier de configuration ssh?

44

Peut-être que mon google-foo m'échoue ici ... Je voudrais connecter et télécharger un fichier de vidage mysql via un terminal utilisant SFTP ou SCP sur mon serveur distant à l'aide de mon fichier de configuration ssh. Selon la documentation que j'ai trouvée, je devrais pouvoir le faire:

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

J'ai aussi fatigué le pseudonyme dans ma config:

sftp -F db.sql.gz myalias /tmp

Lorsque je fais les deux ci-dessus, je reçois simplement une impression des commandes possibles, l' -Fune d'entre elles.

Je peux déjà me connecter via ssh en utilisant le raccourci dans ma configuration locale pour que je sache que cela fonctionne:

ssh myalias

** Remarque: je me connecte à l'aide d'une paire de clés privée / publique, je n'ai donc jamais besoin de saisir de mot de passe. Un mot de passe composé est associé à la paire de clés, mais OS X Keychain en a gardé le souvenir lors de ma première connexion.

... donc je ne suis pas sûr de ce que je fais mal.

Danny Englander
la source

Réponses:

46
  1. Dans le texte d'aide: " ... [-F ssh_config] ..."

    Selon ce qui précède, -Fon attend un argument: chemin d'accès à un fichier de configuration OpenSSH ~/.ssh/configou similaire. Mais vous lui donnez plutôt un dump SQL compressé.

    Puisque plain ssh myaliasfonctionne déjà, vous n'avez même pas besoin de l' -Foption ici. Je sftp myaliasvoudrais juste vous connecter au serveur.

  2. Cependant, le sftpclient OpenSSH ne prend pas en charge le téléchargement de fichiers comme vous le souhaitez. il ne peut télécharger que des fichiers (en utilisant la syntaxe host:path) ou travailler en mode interactif. Pour le téléchargement, vous devez utiliser soit le mode interactif ...

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

    ... ou l' scpoutil:

    scp db.sql.gz myalias:/tmp
    

    ou

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

(sftp a un mode de traitement par lots dans lequel il peut lire les commandes d’un fichier -b, mais il est plus simple à utiliser scppour les téléchargements uniques.)

Il existe également d’autres clients SFTP: lftp convient à une utilisation interactive, tandis que curl est plus facile à automatiser. Pour les sauvegardes et autres, vous pouvez également utiliser rsync (qui exécute son propre protocole, mais toujours dans SSH).

Grawity
la source
wow c'est parfait, super bien! Je commence tout juste à me familiariser avec le terminal, ce qui sera très utile dans le futur.
Danny Englander
0

Problème causé par la configuration de ForwardAgent comme ci-dessous,

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

Mon cas, il était dû à la 'ForwardAgent' sur la configuration ssh provoquant le blocage du scp. Une fois commenté, a travaillé pour moi.

Vous pouvez également avoir une copie du fichier avec la ligne ForwardAgent commentée et utiliser scp -F pour le faire fonctionner.

MohanBabu
la source