rsync do servidor ssh remoto com chaves encaminhadas

3

Contexto

Estou escrevendo um script de sincronização para sincronizar alguns ambientes da Web.

Ex: Atualizar integração da produção (principalmente para buscar novas linhas de banco de dados e arquivos enviados)

Alguns dos meus pré-requisitos são:

  • Os desenvolvedores usarão esse script do servidor de integração
  • As chaves DSA são necessárias para se conectar ao servidor de produção
  • O servidor de integração não pode armazenar as chaves privadas do desenvolvedor

Pergunta

Eu quero que os desenvolvedores se conectem à integração com ssh -A para permitir que o script se conecte ao servidor de produção com sua chave:

+-------------+    SSH     +-------------+   rsync   +-------------+
| Developer   | ---------> | Integration | --------> |  Production |
|  computer   |            |   Platform  | <-------- |   platform  |
+-------------+            +-------------+           +-------------+
(priv DSA key)              (pub DSA key)             (pub DSA key)

Funciona muito bem para ssh ou scp , mas não consigo fazer com que o rsync use as chaves encaminhadas para se conectar ao servidor de produção.

Eu vi perguntas semelhantes , mas onde o rsync é executado do computador do usuário e, portanto, o arquivo de chave ssh pode ser apontado pela opção -i .

Minha preocupação não é relacionada à frase-senha, pois esse script será executado por usuários reais (não pelo cron)

Eu tentei especificar o shell remoto para rsync assim:

rsync -e "ssh -A" user@production

Mas sem sorte.

    
por Huge 12.06.2014 / 18:44

1 resposta

1

Ok, meu problema é que eu sou "SSHing" na porta não padrão e estava tentando dizer ao rsync via opção --port= .

Em vez disso, usei rsync -e "ssh -p 1337" user@host:somepath/ . e funciona muito bem fora da caixa.

    
por 24.06.2014 / 18:21