Как rsync с нестандартным портом и двухфакторной аутентификацией 2FA? - PullRequest
0 голосов
/ 19 февраля 2019

Мне нужно выполнить rsync для удаленного сервера, используя нестандартный порт SSH и 2FA, которые я использую через приложение Authy.SSH работает с этой командой:

ssh -2 -p 9999 -i /Users/Me/.ssh/id_rsa  user@9.9.9.9 

Это вызывает приглашение «Код подтверждения» в оболочке.Который я вхожу из Authy, и я в.

Учитывая обсуждение этого ответ StackOverflow Я попробовал этот вариант rsync:

rsync -rvz -e 'ssh -p 9999 -i /Users/Me/.ssh/id_rsa \
   --progress    /src/   user@9.9.9.9.9:/dest/

(Putздесь, в две строки, просто для разборчивости, это одна строка в моей команде оболочки).

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

protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(185) [sender=3.1.3]

Как я могу использовать rsync с 2FA?Большое спасибо.

1 Ответ

0 голосов
/ 19 февраля 2019

Поскольку @JGK упомянул ответ в комментарии, добавив ответ сюда для потомков.Эта вещь "is your shell clean" показывается, когда удаленный сервер выводит какой-то вывод при входе в систему, что в моем случае .bashrc действительно было.Я добавил условное выражение в это эхо только для применения, когда вход в оболочку является «интерактивным», как упоминалось в этом потоке сбоя сервера , и он работает.Просто для ясности условие IF читается следующим образом:

if echo "$-" | grep i > /dev/null; then
  [any code that outputs text here]
fi

Большое спасибо.

...