SCP-файлы между двумя виртуальными машинами

SCP-файлы между двумя виртуальными машинами

У меня есть 2 виртуальные машины. Первая виртуальная машина — это место, где хранятся исходные файлы. Вторая виртуальная машина — это место, где находится мой скрипт bash, и он должен копировать файлы из исходного кода на мою вторую виртуальную машину.

Как это сделать в Bash?

Возможно ли SCP-файлы с 1 виртуальной машины на 2-ю виртуальную машину в Bash, когда мой скрипт запущен на 3-й машине? Если да, то, пожалуйста, покажите мне, как это сделать.

решение1

Это возможно (при условии, что оба хоста прослушивают SSH и первый удаленный хост может видеть второй)! Почему бы вам не попробовать?

scp remote1:/path/to/file remote2:/path/to

Возможно, вам придется указать имена пользователей и/или пароли для обоих этих хостов (если ваше имя пользователя различается на разных компьютерах).

Если вы используете аутентификацию на основе агента с включенной переадресацией агентов, вам не нужно будет предоставлять никаких паролей (это мой предпочтительный метод работы).

Обратите внимание, что это не имеет ничего общего с Bash (или даже виртуальными машинами) и должно работать в любой оболочке.

решение2

Обычный способ сделать это — подключиться по ssh к одной из удаленных машин и запустить scp оттуда.

#3rd-vm> ssh 2nd-vm
#2nd-vm> scp file 1st-vm:~/

решение3

Если вам нужно подключить его через третью машину, вы можете сделать это с помощью ssh следующим образом:

ssh remote1 cat file | ssh remote2 'cat > file'

Или с помощью tar:

ssh remote1 tar cf - path/to/copy | ssh remote2 tar xf - -C path/to/dest

Связанный контент