2015-09-05 3 views
24

Я хочу, чтобы скопировать локальный файл с компьютера Бродячего к моему локальному хосту, но я получаю сообщение об ошибке:Как скопировать файл с компьютером 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, но все-таки получил ту же ошибку.

ответ

16

Вы должны прочитать страницу руководства для scp. Правильный синтаксис:

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

прописные P для "порт". Нижний регистр используется для сохранения времени модификации.

4

Это удобный инструмент для тех, кто в наступающем через Google: Vagrant SCP

14

Получить 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 . 
31

Другой вариант cat файлы на что-то местный:

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

Это также должно работать для файлов, которые требуют прав суперпользователя (что-то бродяга SCP плагин, кажется, не поддерживает).

2

Как упоминалось в @SevenJ, ssh-config может предоставить всю необходимую информацию. Но гораздо проще сохранить его в файл и использовать этот файл, вместо того чтобы создавать сложную команду scp. Например:

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

Здесь я предполагаю, что ваш бродячий файл не отменяет имя машины из «по умолчанию». Если это так, замените «default:» на «:».

Смежные вопросы