autossh退出,因为ssh(dropbear)无法解析主机

时间:2015-09-21 18:04:58

标签: ssh dns autossh

我在可能具有互联网连接或可能没有互联网连接的系统上运行自动搜索。我真的不知道什么时候有连接但是如果是这样我希望autossh建立一个ssh隧道:

autossh -M 2000 -i /etc/dropbear/id_rsa -R 5022:localhost:22 -R user@host.name -p 6022 -N

几秒后它会抛出:

/usr/bin/ssh: Exited: Error resolving 'host.name' port '6022'. Name or service not known

就是这样。 autossh是否意味着让ssh进程无论如何都在运行?我真的必须通过ping左右来检查连接吗?

1 个答案:

答案 0 :(得分:2)

您需要将AUTOSSH_GATETIME环境变量设置为0。从autossh(1):

Startup behaviour
 If the ssh session fails with an exit status of 1 on the very first try, autossh

 1.      will assume that there is some problem with syntax or the connection setup,
         and will exit rather than retrying;

 2.      There is a "starting gate" time. If the first ssh process fails within the
         first few seconds of being started, autossh assumes that it never made it
         "out of the starting gate", and exits. This is to handle initial failed
         authentication, connection, etc. This time is 30 seconds by default, and can
         be adjusted (see the AUTOSSH_GATETIME environment variable below). If
         AUTOSSH_GATETIME is set to 0, then both behaviours are disabled: there is no
         "starting gate", and autossh will restart even if ssh fails on the first run
         with an exit status of 1. The "starting gate" time is also set to 0 when the
         -f flag to autossh is used.
 AUTOSSH_GATETIME
         Specifies how long ssh must be up before we consider it a successful connec‐
         tion. The default is 30 seconds. Note that if AUTOSSH_GATETIME is set to 0,
         then not only is the gatetime behaviour turned off, but autossh also ignores
         the first run failure of ssh. This may be useful when running autossh at
         boot.

用法:

AUTOSSH_GATETIME=0 autossh -M 2000 -i /etc/dropbear/id_rsa -R 5022:localhost:22 -R user@host.name -p 6022 -N