如何与非标准端口和双因素2FA身份验证同步?

时间 2019-02-19
阅读 63
点赞 0
收藏 0
连接khom-nazid

我需要使用一个非标准的ssh端口和2fa(通过authy应用程序使用)与远程服务器同步。ssh使用以下命令:

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

这会在shell中显示一个“验证代码”提示。我是从授权进入的,我在。

讨论过这个问题a StackOverflow answers我尝试了rsync的这种变体:

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

(为了易读性,这里放两行,这是我的shell命令中的一行)。

这确实会出现验证代码提示,我正确输入验证代码,但随后会产生以下错误:

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?多谢。

建议答案

因为@jgk在评论中提到了答案,所以在这里为后代添加了答案。当远程服务器在登录时回显一些输出时,就会显示这个“是您的外壳干净”的东西,在我的例子中是这样的。.bashrc确实是这样。我在该echo中添加了一个条件,只在shell登录为“交互式”时应用,如中所述。this Server Fault thread而且它是有效的。为了更清楚起见,if条件如下:

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

多谢。

👍 0