Мне нужно сделать rsync по ssh и сделать это автоматически без необходимости передавать пароль для ssh вручную.как передать пароль для команды rsync ssh
ответ
Вы должны использовать ключевой файл без кодовой фразы для сценариев ssh-логинов. Это, очевидно, риск для безопасности, следите за тем, чтобы сам файл ключей был надежно защищен.
использовать ключ SSH:
взгляд на SSH-серийник и SSH-копии идентификатор.
После этого вы можете использовать Rsync таким образом:
rsync -a --stats --progress --delete /home/path server:path
Если я использую ключ с ssh, я пишу: ssh u @ serv -i ./rsa Но как это сделать в rsync? – liysd
Если вы поместите ключ в свой .ssh-каталог и присвоите ему стандартное имя (обычно id_rsa/id_rsa.pub), он будет автоматически загружен rsync. –
Хотя вы уже реализовали его сейчас,
вы также можете использовать любой expect реализации (вы найдете альтернативы в Perl , Python: pexpect, paramiko и т. Д.)
Вы можете избежать приглашения пароля на команду rsync, установив переменную окружения RSYNC_PASSWORD на пароль, который вы хотите использовать, или используя параметр -password-file.
работает только в том случае, если на целевом сервере работает демон rsync –
Несмотря на то, что этот ответ не помогает, если не используется демон rsync, Google приземлился на меня, и это было именно то, что мне было нужно. Для меня мне нужен прямой rsync для rsyncd, no ssh. Я просто использовал параметр password-file и отлично работал для скрипта. – gregthegeek
Использование "sshpass" неинтерактивный утилита поставщик паролю
В Ubuntu
sudo apt-get install sshpass
Команда RSync
/usr/bin/rsync -ratlz --rsh="/usr/bin/sshpass -p password ssh -o StrictHostKeyChecking=no -l username" src_path dest_path
Я знаю, что это не самая лучшая практика, но у меня есть NAS с искалеченным SSHD, который не будет работать с ключом. Этот ответ был недостающим моментом для моей головоломки с автоматическим резервным копированием. Итак, +1 для ответа на последний ответ –
Не знал про sshpass, оказался в сложной ситуации. – haridsv
Если вы не можете использовать ключевой файл, но не хотите включать в него пароль, вы можете записать его во временный файл и включить его так: 'sshpass -p \' cat .password \ 'ssh [.. .] '. Затем защитите свой файл '.password'' chmod 400.password', чтобы убедиться, что только его пользователь может его прочитать. – lutuh
еще одна интересная возможность: 1. генерировать RSA или DSA (как было описано) 2. поместить открытый ключ на хост (как уже было описано) 3. пробег:
rsync --partial --progress --rsh="ssh -i dsa_private_file" [email protected]:/home/me/d .
Примечание: -i dsa_private_file который является вашим RSA/DSA закрытый ключ
В принципе, этот подход очень похож на описанный на @Mad Scientist, однако вы не нужно копировать свой закрытый ключ в ~/.ssh. Другими словами, это полезно для задач узкоспециализированных (один раз доступа без пароля)
Если вы не можете использовать открытый/закрытый ключи, вы можете использовать ожидать:
#!/usr/bin/expect
spawn rsync SRC DEST
expect "password:"
send "PASS\n"
expect eof
if [catch wait] {
puts "rsync failed"
exit 1
}
exit 0
Вы должны замените SRC и DEST на обычные параметры источника и назначения rsync и замените PASS на ваш пароль. Просто убедитесь, что этот файл надежно хранится!
эти команды arent доступны на моей версии Red Hat Enterprise Linux Server версии 5.11 (Tikanga) ' –
Автоматически вводить пароль для команды rsync сложно. Мое простое решение, чтобы избежать проблемы, - это установить резервную копию папки. Затем используйте локальную команду rsync для резервного копирования установленной папки.
mount -t cifs //server/source/ /mnt/source-tmp -o username=Username,password=password
rsync -a /mnt/source-tmp /media/destination/
umount /mnt/source-tmp
Следуя идее, публикуемую Эндрю Сифорд, это делается с помощью SSHFS:
echo "SuperHardToGuessPass:P" | sshfs -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]:/mypath/ /mnt/source-tmp/ -o workaround=rename -o password_stdin
rsync -a /mnt/source-tmp/ /media/destination/
umount /mnt/source-tmp
Я использую файл VBScript для этого на платформе Windows, где оно серверы мне очень хорошо.
set shell = CreateObject("WScript.Shell")
shell.run"rsync -a [email protected]:/Users/Name/Projects/test ."
WScript.Sleep 100
shell.SendKeys"Your_Password"
shell.SendKeys "{ENTER}"
следующие работы для меня
SSHPASS='myPassword'
/usr/bin/rsync -a -r -p -o -g --progress --modify-window=1 --exclude /folderOne -s -u --rsh="/usr/bin/sshpass -p $SSHPASS ssh -o StrictHostKeyChecking=no -l root" source-path myDomain:dest-path >&2
я должен был установить sshpass
-a уже подразумевает -rlptgoD, и в целом было бы гораздо более полезно иметь приведенную командную строку здесь. – Christian
- 1. Для каждой команды ssh запрашивается пароль, Python
- 2. Предотвращение попыток rsync запрашивать пароль
- 3. Ошибка команды Rsync в Cygwin
- 4. Пароль без пароля для SSH через SSH
- 5. Rsync SSH не удается подключиться
- 6. Rsync через SSH туннель
- 7. Как передать пароль с помощью Net :: SSH в Perl?
- 8. переменных команды Rsync, Баш скрипт
- 9. Как передать пароль Runtime.exec
- 10. Как отправить пароль в команде с помощью команды ssh
- 11. Любой интерфейс rsync, поддерживающий SSH для Linux?
- 12. Как передать * зашифрованный * пароль в команде linux ssh? есть ли способ передать зашифрованный пароль?
- 13. Как отправить пароль при использовании команды ssh в os.system?
- 14. Rsync без доступа к SSH
- 15. су передать пароль для сценария
- 16. Как использовать Rsync без SSH и rsh
- 17. Как передать пароль su/sudo/ssh без переопределения TTY?
- 18. как передать пароль в скрипте
- 19. не удалось передать пароль su
- 20. Запуск команды Rsync Inside Expect Script
- 21. Ftp передать rsync-way
- 22. Проблемы с запуском Rsync команды
- 23. Параметры принудительной команды SSH
- 24. Провайдер с поставщиком Docker требует пароль RSync
- 25. Как подать пароль на SSH?
- 26. пароль для подключения ssh к контейнеру докеров
- 27. как сделать выполнение команды SSH тайм-аут
- 28. Команды журнала для сеанса ssh
- 29. Как передать пароль scp?
- 30. Как передать пароль pg_dump?
Там нет никакой возможности для ввода пароля в тексте команды? – liysd
Не легко, нет никаких параметров для него в ssh –
Следует отметить, что это не всегда можно сделать (например, многие версии сервера sroid-сервера довольно ограничены). – Ponkadoodle