我正在尝试设置 autossh 来运行到我的 VPN 服务器的隧道。如果我使用
autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 10000:localhost:22 console@<myvpnip>
它似乎运行良好,我可以使用隧道。
但是,如果我添加一个-f
标志在后台运行
autossh -f -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 10000:localhost:22 console@<myvpnip>
当我尝试使用隧道时,出现以下情况。
连接被拒绝
这是怎么回事?有没有办法在后台运行时记录任何错误?
答案1
使用该标志时,您是否能够输入密码-f
?来自 autossh 手册页:
请注意,autossh 的 -f 与 ssh 的 -f 之间存在一个关键区别:与 autossh 一起使用时,ssh 将无法询问密码或密码短语
您仍然可以使用该-f
标志,但您不能使用密码验证。而是使用公钥认证使用authorized_keys
VPN 服务器上的 -file。然后它应该可以与 一起使用autossh -f -M 0 -N -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 10000:localhost:22 console@<myvpnip>
。请注意 的额外-N
选项ssh
,它仅用于转发端口。
您应该能够使用tail -f /var/log/syslog
或 使用查看调试信息journalctl -f
。
答案2
事实证明我需要更多标志。我认为问题是我需要抑制一些不需要的返回数据(例如给我一个命令行)。它很好地配合了这个
autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -fN -T -R 10000:localhost:22 console@<myvpnip>