Как SCP файл (ы) из виртуальной машины Ubuntu на удаленный веб-хост?

Я пытаюсь передать некоторые файлы с моей локальной виртуальной машины Ubuntu 10.04 (работающей на платформе Windows Vista) на мой удаленный веб-хост. SSH включен на их конце, и я смог войти через командную строку, поэтому я знаю, что использую правильный порт #. Вот что я попробовал:

Я захожу на веб-хост через SSH-оболочку. Затем в командной строке «remoteuser @ remotehost» я набираю:

scp -P PORT# -r myuserid@127.0.0.1:/~/fromFolder/ ~/public_directory/toFolder/

, где PORT# - фактический номер порта, например 22

. Меня спросили пароль myuserid@127.0.0.1, но он не взял бы пароль, который я обычно использую с этой учетной записью localhost.

Как лучше всего использовать scp? Должен ли я войти в систему на удаленном хосте через SSH, а затем запустить scp в командной строке remoteuser@remotehost$ или мне нужно просто запустить SCP с моего локального хоста?

2
задан 9 January 2012 в 22:26

1 ответ

Правильный синтаксис будет выглядеть примерно так:

scp -P 234 -r ~/local/directory remoteusername@remotehost.com:/remote/directory

Код, который вы показали, пытается скопировать файлы с вашего локального компьютера, доступ к которому осуществляется через localhost, на ваш локальный компьютер, к которому осуществляется прямой доступ

ОБНОВЛЕНИЕ: Если вы пытаетесь выполнить команду scp из сеанса ssh на удаленном хосте, чтобы скопировать файлы обратно в вашу Ubuntu виртуальной коробки, то, боюсь, в большинстве случаев это не невозможно - то есть скорее всего, к экземпляру Ubuntu virtualbox нельзя подключиться из внешнего мира, если вы не выполнили какую-либо настройку (т.е. установили мостовой адаптер в вашей хост-ОС, настроили переадресацию портов на модеме и т. д.). Более того, IP-адрес, который вы пытаетесь использовать, - 127.0.0.1 - является адресом «локальной петли» и доступен только с той же машины. То есть когда вы запускаете команду на сервере, этот IP относится к серверу.

Так что я все еще предлагаю вам использовать синтаксис, который я показал выше - просто имейте в виду, что «local» в команде означает «машину, на которой у вас открыт сеанс терминала», а не физическую машину ты сидишь на.

Пример: , если вы хотите скопировать файл с одного сервера на другой:

# copy a file from local machine to server1.com
user@local-machine# scp ./somefile.txt user1@server1.com:/home/user2

# copy a file from server1.com to server2.com
user@local-machine# ssh user1@server1.com
user1@server1# scp ./somefile.txt user2@server2.com:/home/user2
user@server1# logout

# copy a file from server2.com to server1.com
user@local-machine# ssh user2@server2.com
user2@server2# ls
    somefile.txt    otherfile.txt
user2@server2# scp ./otherfile.txt user1@server1.com:/home/user1
user2@server2# logout

# can't copy a file TO local-machine because it's not accessible from internet
0
ответ дан 9 January 2012 в 22:26

Другие вопросы по тегам:

Похожие вопросы: