61 votes

Utiliser SCP ou SFTP avec mon fichier de configuration ssh ?

Peut-être que mon google-foo me fait défaut ici... Je voudrais me connecter et télécharger un fichier dump mysql via le terminal en utilisant SFTP ou SCP sur mon serveur distant en utilisant mon fichier de configuration ssh. Selon la documentation que j'ai trouvée, je devrais être en mesure de le faire :

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

J'ai aussi fatigué l'alias dans ma configuration :

sftp -F db.sql.gz myalias /tmp

Lorsque j'effectue les deux opérations ci-dessus, j'obtiens simplement une impression des commandes possibles, -F étant l'un d'entre eux.

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

ssh myalias

**Note : Je me connecte en utilisant une paire de clés privée / publique, donc je n'ai jamais besoin d'entrer un mot de passe. La paire de clés est associée à une phrase de passe, mais le trousseau d'OS X s'en est souvenu lors de ma première connexion.

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

73voto

James Mertz Points 390
  1. Dans le texte d'aide : " ... [-F ssh_config] ... "

    Selon ce qui précède, -F attend un argument : le chemin vers un fichier de configuration OpenSSH, ~/.ssh/config ou similaire. Mais vous lui donnez un fichier SQL compressé à la place.

    Puisque l'ordinaire ssh myalias fonctionne déjà, vous n'avez même pas besoin de l'option -F ici. Juste sftp myalias se connecterait au serveur.

  2. Cependant, l'OpenSSH sftp ne prend pas en charge le téléchargement de fichiers comme vous essayez de le faire ; il ne peut que télécharger 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 le scp outil :

    scp db.sql.gz myalias:/tmp

    ou

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

(sftp dispose d'un mode batch dans lequel il peut lire des commandes à partir d'un fichier, en utilisant l'option -b mais il est plus simple d'utiliser scp pour les téléchargements uniques).

Il existe également d'autres clients SFTP - lftp est bon pour une utilisation interactive, tandis que bouclette peut être plus facile à automatiser. Pour les sauvegardes et autres, vous pourriez aussi utiliser rsync (qui exécute son propre protocole mais toujours dans le cadre de SSH).

0voto

MohanBabu Points 143

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

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

Dans mon cas, c'était dû à l'utilisation de 'ForwardAgent' dans la configuration ssh, ce qui faisait que le scp se bloquait. Après l'avoir commenté, cela a fonctionné pour moi.

Aussi, vous pourriez avoir une copie du fichier avec la ligne ForwardAgent commentée et utiliser scp -F pour le faire fonctionner.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X