it-swarm.com.de

So kopieren Sie Dateien von einem Vagrant-Computer auf einen lokalen Host

Ich möchte eine lokale Datei von einem Vagrant-Computer auf meinen lokalen Host kopieren, erhalte jedoch eine Fehlermeldung:

ssh: Verbindung zum Host 127.0.0.1 Port 22: Verbindung abgelehnt

[[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 zu verwenden, habe aber immer noch den gleichen Fehler erhalten.

30
geeks

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

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

Der Großbuchstabe P ist für "Hafen". Kleinbuchstaben werden verwendet, um Änderungszeiten beizubehalten.

25
Jakuje

Eine andere Option ist cat die Dateien auf etwas Lokales:

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

Dies sollte auch für Dateien funktionieren, die Root-Berechtigungen erfordern (etwas, das das Vagrant-SCP-Plugin nicht zu unterstützen scheint).

44
Jace Browning

Holen Sie sich IdentityFile und Port mit

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 .
20
SevenJ

Wie @SevenJ bereits erwähnte, 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. Z.B.:

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

Hier gehe ich davon aus, dass Ihre vagabundierende Datei den Computernamen nicht von "Standard" überschreibt. Wenn dies der Fall ist, ersetzen Sie "default:" durch ":".

5
Andy Lowry

Dies ist ein praktisches Tool für alle, die über Google hereinkommen: Vagrant SCP

5
Dan