Как скопировать файл с машины бродяг на локальный хост
Я хочу скопировать локальный файл с машины Vagrant на свой локальный хост, но я получаю сообщение об ошибке:
ssh: подключение к узлу 127.0.0.1 порт 22: отказ в подключении
[[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
Я также попытался использовать с помощью localhost
, но все равно получил ту же ошибку.
Ответы
Ответ 1
Вы должны прочитать страницу руководства для scp
. Правильный синтаксис:
scp -P 2222 [email protected]:/home/vagrant/devstack/local.conf .
Верхний регистр P предназначен для "порта". Нижний регистр используется для сохранения времени модификации.
Ответ 2
Другим вариантом является cat
файлы для чего-то локального:
vagrant ssh -c "sudo cat /home/vagrant/devstack/local.conf" > local.conf
Это также должно работать для файлов, требующих прав на root (что-то вроде брандмауэр-плагина SCP не поддерживает).
Ответ 3
Получить IdentityFile и порт с помощью
vagrant ssh-config
scp -i IdentityFile_file -P Port [email protected]:/file_dir dist_dir
например.
scp -i /Users/xxxxx/tmp/vagrant/centos_6.5/.vagrant/machines/default/virtualbox/private_key -P 2200 [email protected]:/tmp/xxx .
Ответ 4
Это удобный инструмент для всех, кто приходит через Google: Vagrant SCP
Ответ 5
Как упоминал @SevenJ, ssh-config может предоставить всю необходимую вам информацию. Но гораздо проще сохранить его в файл и использовать этот файл, а не создавать сложную команду scp. Например:.
vagrant ssh-config > config.txt
scp -F config.txt default:/path/to/file .
Здесь я предполагаю, что ваш бродячий файл не отменяет имя машины из "default". Если это так, замените "default:" на ":".