Não é possível compartilhar uma conexão ssh com o rsync

5

No meu arquivo .ssh/config , tenho o seguinte:

Host xxx
User yyy
HostName zzzz
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p 

Isso funciona muito bem para multiplexar minhas conexões ssh (por exemplo, efetuar login uma vez e compartilhar a conexão com várias sessões).

Eu gostaria de multiplexar (compartilhar) minha conexão ssh com rsync , para que eu possa fazer coisas como

rsync -arv -e ssh xxx:/source target

e não precisa fazer login através do rsync (eu tenho o sistema de autenticação de dois fatores com o XXX e seria ótimo se eu pudesse pular isso quando eu usar o rsync).

Atualização: Aprendi que, por padrão, o rsync tentaria reutilizar a conexão primeiro. Então eu não tenho certeza porque não está funcionando. Aqui está a saída detalhada da minha tentativa:

> rsync -arv -e 'ssh -v' XXX:~/file ~/temp/.
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /home/YYYY/.ssh/config
debug1: Applying options for XXX
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: auto-mux: Trying existing master
Control socket connect(/home/YYY/.ssh/XXX@ZZZZ:22): Connection refused
    
por Amelio Vazquez-Reina 19.09.2012 / 20:17

2 respostas

3

Eu apenas tentei exatamente isso e funcionou para mim.

OBSERVAÇÃO: Eu também devo incluir que antes de executar os comandos abaixo eu executei este comando, que configura a conta de usuário no host remoto para uso com as credenciais ssh da minha conta de usuário local.

ssh-copy-id root@skinner

Minha configuração é a seguinte:

$HOME/.ssh/config :

Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
IdentityFile ~/.ssh/id_dsa

Host skinner mulder byers
    User root

conteúdo de $HOME/.ssh/ :

$ ls -dl ~/.ssh
drwx------ 2 saml saml 4096 May 23 03:18 /home/saml/.ssh

$ ls -l ~/.ssh
total 16
-rw------- 1 saml saml 204 May 23 03:17 config
-rw------- 1 saml saml 736 Jan 10  2011 id_dsa
-rw-r--r-- 1 saml saml 612 Jan 10  2011 id_dsa.pub
-rw-r--r-- 1 saml saml 401 May 23 03:17 known_hosts

Agora ssh para hospedar o skinner:

conteúdo de $HOME/.ssh/ :

$ ls -l ~/.ssh
total 16
-rw------- 1 saml saml 204 May 23 03:17 config
-rw------- 1 saml saml 736 Jan 10  2011 id_dsa
-rw-r--r-- 1 saml saml 612 Jan 10  2011 id_dsa.pub
-rw-r--r-- 1 saml saml 401 May 23 03:17 known_hosts
srw------- 1 saml saml   0 May 23 03:25 master-root@skinner:22

envia somefile.txt para o host remoto:

$ rsync -arv -e ssh somefile.txt skinner:~
sending incremental file list
somefile.txt

sent 106 bytes  received 31 bytes  91.33 bytes/sec
total size is 13  speedup is 0.09

extrai somefile.txt do host remoto:

$ rsync -arv -e ssh skinner:~/somefile.txt somefile-remote.txt
receiving incremental file list
somefile.txt

sent 30 bytes  received 100 bytes  260.00 bytes/sec
total size is 13  speedup is 0.10

resultados dos comandos rsync acima:

$ ls -l
total 8
-rw-rw-r-- 1 saml saml 13 May 23 03:19 somefile-remote.txt
-rw-rw-r-- 1 saml saml 13 May 23 03:19 somefile.txt

envia somefile.txt para o host remoto (-v):

$ rsync -arv -e 'ssh -v' somefile.txt skinner:~
OpenSSH_5.5p1, OpenSSL 1.0.0e-fips 6 Sep 2011
debug1: Reading configuration data /home/saml/.ssh/config
debug1: Applying options for *
debug1: Applying options for skinner
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 5
sending incremental file list
somefile.txt
debug1: mux_client_request_session: master session id: 5

sent 106 bytes  received 31 bytes  274.00 bytes/sec
total size is 13  speedup is 0.09

envia somefile.txt para o host remoto (-vv):

$ rsync -arv -e 'ssh -vv' somefile.txt skinner:~
OpenSSH_5.5p1, OpenSSL 1.0.0e-fips 6 Sep 2011
debug1: Reading configuration data /home/saml/.ssh/config
debug1: Applying options for *
debug1: Applying options for skinner
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: auto-mux: Trying existing master
debug2: fd 3 setting O_NONBLOCK
debug2: mux_client_hello_exchange: master version 4
debug1: mux_client_request_session: master session id: 5
sending incremental file list
somefile.txt
debug1: mux_client_request_session: master session id: 5
debug2: Received exit status from master 0

sent 106 bytes  received 31 bytes  274.00 bytes/sec
total size is 13  speedup is 0.09
    
por 23.05.2013 / 09:48
1

Pode ser um problema relacionado ao uso da sua chave ssh? No servidor remoto, verifique sua chave no arquivo authorized_keys e verifique se você não limitou o uso permitido com o parâmetro command= . Mais informações sobre o formato de arquivo estão disponíveis no link .

    
por 23.05.2013 / 11:42

Tags