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.
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:
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.
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.