ssh config com sudo

1

Estou fazendo o backup da minha máquina local em um servidor remoto. Como eu quero fazer o backup de toda a máquina local, até mesmo arquivos que meu usuário local normalmente não tem acesso, estou fazendo isso usando sudo, então o comando se parece com sudo rsync -M--fake-super --other-arguments / me@server:/backup/location .

Isto tem o problema que o ssh tenta usar a configuração do ssh do root, e os certificados, que obviamente não estão configurados. Recentemente, comecei a referenciar o servidor por um alias definido em ~/.ssh/config e o método parou de funcionar corretamente.

A pergunta é: Existe uma maneira que eu possa usar os direitos de acesso do sudo, mas mantendo a configuração ssh do meu usuário regular?

    
por cube 05.01.2015 / 16:51

3 respostas

3

Cheguei a uma solução baseada na idéia de Brian de selecionar a chave ssh manualmente. Para isso eu adicionei a opção -F que especifica o caminho para a configuração. Agora, o argumento que estou adicionando ao rsync é semelhante ao seguinte: -e "ssh -i $HOME/.ssh/id_rsa -F $HOME/.ssh/config" .

    
por 05.01.2015 / 18:25
1

Eu acho que você tem que fazer o "contrário", ssh na máquina remota e rsync de lá, como por: link

$ rsync -e "ssh -t -l bkupacct" --rsync-path='sudo rsync' -av [email protected]:/var/www/ /tmp/
    
por 05.01.2015 / 17:02
1

Para alterar o usuário de login para uma conexão ssh originada pelo root, use a seguinte sintaxe em /root/.ssh/config :

Host server
User nonrootusername

Se você precisar de uma chave RSA para efetuar login no servidor remoto, especifique o local da chave pública para rsync da seguinte forma:

sudo rsync -e "ssh -i /path/to/rsa/key.pub" ...

Comente esse alias de servidor; provavelmente não vai ajudá-lo nisso.

    
por 05.01.2015 / 17:04