2015-09-05 1 views
24

ich eine lokale Datei von einer Vagrant Maschine zu meinem lokalen Rechner kopieren wollen, aber ich bin eine Fehlermeldung bekommen:Wie Datei aus einer Vagrant Maschine lokalen Host kopieren

ssh: connect 127,0 Gastgeber .0.1 Port 22: Connection refused

[[email protected] 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 

ich habe auch versucht localhost mit verwenden, aber immer noch die gleichen Fehler.

Antwort

16

Sie sollten die Handbuchseite für scp lesen. Die korrekte Syntax ist:

scp -P 2222 [email protected]:/home/vagrant/devstack/local.conf . 

Der Groß P für "Port" ist. Kleinschreibung wird verwendet, um Änderungszeiten beizubehalten.

4

Dies ist ein praktisches Werkzeug für jeden, über Google kommen: Vagrant SCP

14

Get Identity und Port mithilfe von

vagrant ssh-config 

scp -i IdentityFile_file -P Port [email protected]:/file_dir dist_dir z.B.

scp -i /Users/xxxxx/tmp/vagrant/centos_6.5/.vagrant/machines/default/virtualbox/private_key -P 2200 [email protected]:/tmp/xxx . 
31

Eine weitere Option ist cat die Dateien auf etwas local:

vagrant ssh -c "sudo cat /home/vagrant/devstack/local.conf" > local.conf 

Dies sollte auch für Dateien arbeiten, die Root-Rechte benötigen (was die vagabundierende SCP-Plugin nicht zu unterstützen scheint).

2

Da @SevenJ erwähnt wurde, kann ssh-config alle benötigten Informationen bereitstellen. Aber es ist viel einfacher, es in einer Datei zu speichern und diese Datei zu verwenden, als einen komplizierten scp-Befehl zu erstellen. Beispiel:

vagrant ssh-config > config.txt 
scp -F config.txt default:/path/to/file . 

Hier nehme ich an, dass Ihre Vagrant-Datei den Computernamen nicht von "Standard" überschreibt. Wenn dies der Fall ist, ersetzen Sie "default:" durch ":".