Como rsync entre computador doméstico e computador dentro de outra rede?

1

Todos os computadores que eu uso rodam o Ubuntu. Para trabalhar em casa, eu SSH do meu computador de casa para o meu computador de laboratório da seguinte forma:

# 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 [email protected]

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

# And I am in my labpc
joedude@labpc>

Como uso o rsync para sincronizar um diretório em labpc com um diretório no meu homepc ? Além disso, seria fantástico se houvesse alguma maneira de automatizar tudo isso para que eu possa rsync com apenas um único comando do meu homepc.

    
por Ashwin Nanjappa 09.04.2013 / 17:48

1 resposta

1

Existem várias maneiras de resolver isso, no entanto, porque queremos executar o comando rsync em seu PC doméstico, eu acho que a melhor maneira seria criar um túnel do seu PC doméstico para o labpc, da seguinte maneira:

joe@homepc> ssh -L 2222:127.0.0.1:2222 [email protected]

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

Agora, no seu PC doméstico, você deve conseguir ssh diretamente no computador do laboratório:

joe@homepc> ssh -p 2222 joedude@localhost

Quando isso estiver funcionando, você poderá criar um script rsync.

Eu adicionaria as seguintes linhas ao ~ / .ssh / config

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

Agora, você deve ser capaz de fazer (em uma janela separada, após os dois primeiros logins ssh serem feitos):

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

Há muito mais melhorias que você poderia fazer depois disso, mas eu esperaria até você fazer a primeira parte funcionar e, em seguida, ver quanto de automação você precisa. Para automatizar completamente isso você precisaria usar o ssh-keygen para permitir logins ssh sem uma senha. Você também pode adicionar mais a .ssh / config para a primeira perna ssh de saída. Usando o parâmetro ProxyCommand em .ssh / config, você pode automatizar tudo.

    
por Gregor 09.04.2013 / 18:28