我希望我的Linux计算机自动创建到服务器的ssh隧道。 我已经创建了密钥,如果我手动连接,一切正常。
这是我在客户端计算机上的supervisor.conf中尝试的内容:
[program:mycommand]
command=autossh -f -nNT -i /home/<myuser>/.ssh/id_rsa -R 20001:localhost:22 ssh1@<myserver_ip_address>
user=<myuser>
或
[program: mycommand]
command=ssh -i /home/<myuser>/.ssh/id_rsa -R 20001:localhost:22 ssh1@<myserver_ip_address>
user=<myuser>
autostart=true
autorestart=true
stopsignal=KILL
它适用于这两种情况,但有时候,我失去了联系(在这两种情况下)。我需要重新启动serveur或客户端计算机。 我应该怎么做才能检测到我的ssh隧道已关闭并再次启动命令?
由于
答案 0 :(得分:0)
将命令更改为:
command=autossh -M 0 -NT -i /home/<myuser>/.ssh/id_rsa -R 20001:localhost:22 ssh1@<myserver_ip_address>
已添加-M 0
,已移除-f
和-n
。
当服务器连接超时时,这将导致ssh重新启动。
超时检查间隔由ServerAliveInterval
中的ServerAliveCountMax
和/etc/ssh/ssh_config
客户端选项配置,例如:
/etc/ssh/ssh_config
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
ServerAliveInterval 60
ServerAliveCountMax 5
答案 1 :(得分:0)
您可以看一下隧道管理器TunMan-生成,执行运行状况检查,重新启动不起作用的隧道,在Docker中工作。