Подтвердить что ты не робот

Как скопировать файл с машины бродяг на локальный хост

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

4b9b3361

Ответ 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:" на ":".