Je veux copier un fichier local d'une machine Vagrant sur mon hôte local, mais je reçois un message d'erreur:
ssh: connexion au port 22 de l'hôte 127.0.0.1: connexion refusée
[user@localhost ceil]$ scp -p 2222 [email protected]:/home/vagrant/devstack/local.conf .
cp: cannot stat ‘2222’: No such file or directory
ssh: connect to Host 127.0.0.1 port 22: Connection refused
J'ai également essayé d'utiliser localhost
mais j'ai toujours la même erreur.
Vous devriez lire la page de manuel de scp
. La syntaxe correcte est:
scp -P 2222 [email protected]:/home/vagrant/devstack/local.conf .
Les majuscules P est pour "port". Les minuscules sont utilisées pour conserver les temps de modification.
Une autre option est cat
les fichiers vers quelque chose de local:
vagrant ssh -c "Sudo cat /home/vagrant/devstack/local.conf" > local.conf
Cela devrait également fonctionner pour les fichiers qui nécessitent des autorisations root (ce que le plugin SCP vagabond ne semble pas prendre en charge).
Obtenez IdentityFile et Port en utilisant
vagrant ssh-config
scp -i IdentityFile_file -P Port [email protected]:/file_dir dist_dir
par exemple.
scp -i /Users/xxxxx/tmp/vagrant/centos_6.5/.vagrant/machines/default/virtualbox/private_key -P 2200 [email protected]:/tmp/xxx .
Comme l'a mentionné @SevenJ, ssh-config peut fournir toutes les informations dont vous avez besoin. Mais il est beaucoup plus facile de l'enregistrer dans un fichier et d'utiliser ce fichier, plutôt que de construire une commande scp compliquée. Par exemple.:
vagrant ssh-config > config.txt
scp -F config.txt default:/path/to/file .
Ici, je suppose que votre fichier vagabond ne remplace pas le nom de la machine par "défaut". Si c'est le cas, remplacez "default:" par ":".
Ceci est un outil pratique pour toute personne entrant via Google: Vagrant SCP