rsync с удаленного ssh-сервера с переадресованными ключами
контекст
Я пишу сценарий синхронизации для синхронизации некоторых веб-сред.
Пример: обновление интеграции с производства (в основном для извлечения новых строк базы данных и загруженных файлов)
Некоторые из моих предпосылок:
- Разработчики будут использовать этот скрипт с сервера интеграции
- Ключи DSA необходимы для подключения к производственному серверу
- Сервер интеграции не может хранить личные ключи девелопера
Вопрос
Я хочу, чтобы разработчики подключились к интеграции с 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
Но без удачи.
1 ответ
Хорошо, моя проблема заключалась в том, что я "SSHing" на нестандартном порту, и я пытался сообщить rsync через --port=
вариант.
я использовал rsync -e "ssh -p 1337" user@host:somepath/ .
вместо этого, и он работает просто отлично из коробки.