Как выполнить rsync между домашним компьютером и компьютером внутри другой сети?

Все компьютеры, которые я использую, работают под управлением Ubuntu. Чтобы работать из дома, я выполняю SSH со своего домашнего компьютера на свой лабораторный компьютер следующим образом:

# First a port knock is needed
joe@homepc> telnet ssh.university.edu 9000

# Next SSH to one of the external SSH servers of university
# This logs me into one of many SSH servers serving as interface
joe@homepc> ssh student7@ssh.university.edu

# Finally SSH to my lab PC inside university network
student7@university999> ssh joedude@labpc

# And I am in my labpc
joedude@labpc>

Как использовать rsync для синхронизации каталога на labpc с каталогом на моем homepc ? Кроме того, было бы здорово, если бы был какой-то способ автоматизировать все это, чтобы я мог rsync с помощью одной команды из моего homepc.

1
задан 9 April 2013 в 19:48

1 ответ

Существует несколько способов решить это, однако, потому что мы хотим выполнить команду rsync на Вашем домашнем ПК, я думаю, что лучший способ состоял бы в том, чтобы создать туннель от Вашего домашнего ПК до labpc, следующим образом:

joe@homepc> ssh -L 2222:127.0.0.1:2222 student7@ssh.university.edu

student7@university999> ssh -L 2222:127.0.0.1:22 joedude@labpc

Теперь, на Вашем домашнем ПК, необходимо смочь к ssh непосредственно в лабораторию ПК:

joe@homepc> ssh -p 2222 joedude@localhost

После того как это работает, затем можно создать rsync сценарий.

Я добавил бы следующие строки к ~/.ssh/config

# Tunnel to labpc
Host labpc_tun
User joedude
Port 2222
# ProxyCommand  ... TODO: set up tunnel automatically
HostName 127.0.0.1

Теперь, необходимо смочь сделать (в отдельном окне, после того, как сначала два логина ssh сделаны):

joe@homepc> rsync labpc_tun:/path-on-labpc/ /path-on-homepc/

Существуют партии больше улучшений, которые Вы могли сделать после этого но я буду ожидать, пока Вы не получите первую работу части и затем видите, в каком количестве автоматизации Вы нуждаетесь. Для завершенной автоматизации этого, необходимо было бы использовать ssh-keygen для разрешения логинов ssh без пароля. Вы могли также добавить больше к .ssh/config для первого выхода ssh участок. Используя параметр ProxyCommand в .ssh/config Вы могли автоматизировать всю вещь.

1
ответ дан 9 April 2013 в 19:48

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

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