Ситуация такова, что наш клиент хочет загрузить самую последнюю резервную копию с нашего сервера (и они не хотят, чтобы мы настраивали ее для них через rdesktop и т. Д. (Вздох)). Клиент работает под управлением Windows, сервер - Linux.
Я не хочу, чтобы им приходилось писать длинное и сложное руководство по настройке авторизации с помощью pub / pri-ключа, поскольку они, без сомнения, потратят впустую все свое и наше время. Я собираюсь заставить их установить cwRsync, который в значительной степени является просто rsync для Windows.
Обычно я бы использовал настройку открытого / закрытого ключа для этого и настраивал его безопасно, однако это не слишком большая проблема.
Как указать пароль для ssh в командной строке для rsync? Я привык: rsync -avz something @ somehost: / blah.
Привет, Джон
Как указать пароль для ssh в командной строке для rsync?
Короткий ответ: вы не можете. SSH предназначен для предотвращения этого. cwRsync - это чрезвычайно урезанная установка cygwin, в которой есть только ssh / rsync. Инструменты, которые вы могли бы использовать вместо этого, например sshpass или ожидаемые, не будут присутствовать.
Я действительно сомневаюсь, что вы сэкономите время, пытаясь заставить их использовать пароль, учитывая указанные выше ограничения.
Как правило, это плохая идея, но если у вас есть безопасный метод связи между вами и ними, вы можете просто создать для них пару ключей, а затем передать им закрытый ключ. Не похоже, что это было бы намного хуже, чем позволить им хранить пароль где-нибудь в сценарии / текстовом файле.
Вы не сможете сделать это без демона rsync. Поверьте мне, я много раз пробовал, прежде чем выбрать ключевое решение (которое намного проще и безопаснее). Итак, хотя есть много вариантов, показывающих, что вы можете сделать что-то вроде этого:
rsync -avz -e ssh rsynctest/ username@***.***.***.***:/home/directory/rsynctest --password-file=/home/username/rpass
Не верьте им. Не трать свое время. Это не сработает только потому, что у вас установлены rsync и ssh. Пока вы не поймете, как выполнить передачу без ssh (а я потратил время зря, пока не убедился, что это было непросто) и запустить демон rsync, это никогда не сработает. Вот два действительно хороших чтения, если вы все еще хотите попробовать (если вы еще не выполнили хороший совет Зоредаке).
http://everythinglinux.org/rsync/ (давай повеселимся, как будто это 1999 год - серьезно, тогда это было написано)
http://finmath.uchicago.edu/~wilder/Security/rsync/
Я отказался от своих попыток сделать это много лет назад, перешел с ключами на ssh и никогда не оглядывался назад.
Вы можете использовать sshpass так:
sshpass -p 'YourPasswordHere' rsync -av --delete -r -L -k -h
root@191.129.225.39:/var/www/images /home/swayxp/test-sync/