与主管的自动ssh连接

时间:2017-05-02 15:35:32

标签: ssh

我希望我的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隧道已关闭并再次启动命令?

由于

2 个答案:

答案 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中工作。

https://github.com/riotkit-org/reverse-networking