Я пишу сценарий синхронизации для синхронизации некоторых веб-сред.
Пример: обновление интеграции из производственной среды (в основном для получения новых строк базы данных и загруженных файлов)
Некоторые из моих предварительных условий:
Я хочу, чтобы разработчики подключились к интеграции с ssh -A
чтобы позволить скрипту подключиться к производственному серверу с их ключом:
+-------------+ SSH +-------------+ rsync +-------------+
| Developer | ---------> | Integration | --------> | Production |
| computer | | Platform | <-------- | platform |
+-------------+ +-------------+ +-------------+
(priv DSA key) (pub DSA key) (pub DSA key)
Он отлично работает для ssh
или scp
, но я не могу заставить rsync использовать перенаправленные ключи для подключения к производственному серверу.
Я видел похожие вопросы но если rsync запускается с компьютера пользователя, и поэтому на файл ключа ssh может указывать -i
вариант.
Меня беспокоит ни одна из парольных фраз, так как этот скрипт будет запускаться реальными пользователями (не cron)
Я попытался указать удаленную оболочку для rsync следующим образом:
rsync -e "ssh -A" user@production
Но безуспешно.
Хорошо, моя проблема заключалась в том, что я "SSHing" на нестандартном порту, и я пытался сообщить rsync через --port=
вариант.
я использовал rsync -e "ssh -p 1337" user@host:somepath/ .
вместо этого, и он отлично работает из коробки.