Как использовать rsync через ssh с ключевыми словами rsa?

Как я могу использовать rsync с парольными фразами? Все найденные мною «решения», которые я обнаружил, используют ключи без парольной фразы, что, похоже, не подходит.

Я работаю на 2 серверах Ubuntu 12.04.2 LTS.

2
задан 15 November 2017 в 17:18

4 ответа

Если вы используете rsync с обычным пользователем, ssh-agent может быть тем, что вы ищете.

Если столкнулся с этой проблемой при использовании rsync в задании cron. Задания Cron выполняются пользователем cron в ограниченной среде (некоторые env var, такие как SSH_AUTH_SOCK, отсутствуют, поэтому ssh-agent не работает).

Пошаговое руководство заключается в использовании брелка . Связка ключей хранит переменные окружения ssh-agent в файле.
Итак, сначала вы устанавливаете связку ключей.
Затем вы добавляете эти строки в ваш файл .bashrc, .zshrc или .profile (подправьте его так, чтобы он соответствовал вашим ключам ssh):

/usr/bin/keychain $HOME/.ssh/id_rsa
source $HOME/.keychain/${HOSTNAME}-sh

Дополнительно, чтобы заставить работать задания cron Вы можете добавить эту строку в начале ваших скриптов cron:

source $HOME/.keychain/${HOSTNAME}-sh


Дополнительная информация в этой статье: http://eli.thegreenplace.net/2013/10 / 08 / некоторые струн-на-каротажа и-SSH-доступ из-хрона-заданий /

0
ответ дан 15 November 2017 в 17:18
rsync -Pavp --rsh="ssh -i YOUR_KEY" DEST USER@REMOTE:SOURCE
0
ответ дан 15 November 2017 в 17:18

Я нашел идеальный ответ на этот вопрос в https://stackoverflow.com/questions/3299951/how-to-pass-password-for-rsync-ssh-command

Это сработало идеально для меня. Как говорит Кейнджоу, это риск для безопасности, но он решает проблему.

Ответ kainjow:

Если вы не можете использовать открытый / закрытый ключи, вы можете использовать ожидаемый:

#!/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 вашим паролем. Просто убедитесь, что этот файл надежно хранится!

0
ответ дан 15 November 2017 в 17:18

Полагаю, все, что вам нужно, это параметр -e, чтобы rsync использовал ssh-соединение, которое автоматически запрашивает вашу фразу-пароль ...

rsync -avze ssh /home/user remoteuser@example.com:/backups Это скопирует / home / user с вашего локального компьютера в каталог удаленных компьютеров / резервных копий

0
ответ дан 15 November 2017 в 17:18

Другие вопросы по тегам:

Похожие вопросы: