Questão ssh config com sudo


Estou fazendo o backup da minha máquina local em um servidor remoto. Porque eu quero fazer backup de toda a máquina local, até mesmo arquivos que o meu usuário local normalmente não tem acesso, eu estou fazendo isso usando o sudo, então o comando parece 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?


1


origem




Respostas:


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


3



Bela extensão, eu não encontrei -F ainda. - hBy2Py
Eu estou tendo este mesmo problema com outros comandos como git e npm que invocam ssh indiretamente ... ter que descobrir como eles invocam ssh e permitir que ele seja configurado para cada comando que pode usar ssh é muito trabalho - Michael


Eu acho que você tem que fazer o "contrário", ssh na máquina remota e rsync de lá, como por: http://en.wikibooks.org/wiki/OpenSSH/Cookbook/Automated_Backup

$ rsync -e "ssh -t -l bkupacct" --rsync-path='sudo rsync' -av bkupacct@www.example.org:/var/www/ /tmp/

1





Para alterar o usuário de login para uma conexão ssh originada por 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 maneira:

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

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


1