Jak używać pliku tożsamości z rsync?
To jest składnia, której myślę, że powinienem używać z rsync, aby użyć pliku tożsamości do połączenia:
rsync -avz -e 'ssh -p1234 -i ~ / .ssh / 1234-identity' \ „/ local / dir /” [email protected]: „/ remote / dir /”
Ale daje mi błąd:
Ostrzeżenie: plik tożsamości ~ / .ssh / 1234-identity niedostępny: nie ma takiego pliku lub katalogu.
Plik jest w porządku, uprawnienia są ustawione poprawnie, działa podczas wykonywania ssh - tylko nie z rsync - przynajmniej w mojej składni. Co ja robię źle? Czy próbuje znaleźć plik tożsamości na komputerze zdalnym? Jeśli tak, jak określić, że chcę używać pliku tożsamości na komputerze lokalnym ?
User ubuntu
Podczas konfigurowania instancji EC2 Ubuntu :) Dzięki!fish
), zróbeval (ssh-agent -c)
Użyj albo
$HOME
lub pełna ścieżka do klucza:
Testowane z rsync 3.0.9 na Ubuntu
źródło
$HOME
nie będzie działać w prostych cudzysłowach (bez rozwijania zmiennych), więc musisz użyć podwójnych cudzysłowów lub ścieżki bezwzględnej."$HOME"
lub$HOME
bez różnicy (również"${HOME}"
jest możliwy, jeśli chcesz to skomplikować)Musisz określić bezwzględną ścieżkę do pliku kluczy tożsamości. To prawdopodobnie jakieś dziwactwo w rsync. (w końcu nie może być idealne)
Napotkałem ten problem zaledwie kilka dni temu :-)
źródło
To działa dla mnie
źródło
/home/user/.ssh/1234-identity
. Wtedy zadziałało. Prawdopodobnie dlatego, że jest to inna powłoka, jak sugeruje odpowiedź Darhuuka.Czy wykonujesz polecenie w bash czy sh? To może mieć znaczenie. Spróbuj wymienić
~
z$HOME
. Spróbuj umieścić ciąg dla-e
opcji w cudzysłowie.źródło
użyj pliku klucza z rsync:
źródło