Como você usa um arquivo de identidade com o rsync?
Esta é a sintaxe que acho que devo usar com o rsync para usar um arquivo de identidade para conectar:
rsync -avz -e 'ssh -p1234 -i ~ / .ssh / 1234-identity' \ "/ local / dir /" [email protected]: "/ remote / dir /"
Mas está me dando um erro:
Aviso: Arquivo de identidade ~ / .ssh / 1234-identity não acessível: Esse arquivo ou diretório não existe.
O arquivo está correto, as permissões estão definidas corretamente, funciona ao executar ssh - mas não com o rsync - pelo menos na minha sintaxe. O que estou fazendo de errado? Está tentando procurar o arquivo de identidade na máquina remota? Em caso afirmativo, como especifico que desejo usar um arquivo de identidade na minha máquina local ?
User ubuntu
ao configurar uma instância do EC2 Ubuntu :) Obrigado!fish
), façaeval (ssh-agent -c)
Use um
$HOME
ou caminho completo para a chave:
Testado com rsync 3.0.9 no Ubuntu
fonte
$HOME
não funcionará dentro de aspas simples (sem expansão variável); portanto, você deve usar aspas duplas ou o caminho absoluto."$HOME"
ou$HOME
sem qualquer diferença (também"${HOME}"
é possível, se você quiser torná-lo complicado)Você deve especificar o caminho absoluto para o seu arquivo de chave de identidade. Provavelmente isso é uma espécie de truque no rsync. (não pode ser perfeito, afinal)
Encontrei este problema há apenas alguns dias :-)
fonte
Isso funciona para mim
fonte
/home/user/.ssh/1234-identity
. Então funcionou. Possivelmente porque é então uma concha diferente, como sugerido na resposta de Darhuuk.Você está executando o comando no bash ou sh? Isso pode fazer a diferença. Tente substituir
~
por$HOME
. Tente citar duas vezes a string da-e
opção.fonte
use o arquivo de chave com rsync:
fonte