我想建立一条到我的家庭服务器的隧道,该隧道将在我的机器启动后立即建立。使用这个答案,我在autossh
服务中设置了我的命令,该服务已设置为在启动时运行。我希望隧道在互联网上工作,并有一个动态 DNS 服务来适应这个。
如果我手动运行该服务,隧道将成功连接。启动后自动启动服务时会出现此问题。该服务可以正常启动,但是由于无法解析我的主机名,因此未建立与我的服务器的连接。
ssh child pid is 1413
ssh: Could not resolve hostname my.host.name: Temporary failure in name resolution
ssh exited with error status 255; restarting ssh
我的服务文件如下:
[Unit]
Description=Creates tunnel to server
After=network.target
[Service]
User=james
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -o "StrictHostKeyChecking=no" -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -NR 3030:localhost:22 [email protected]
[Install]
WantedBy=multi-user.target
有没有办法解决这个问题?
代替
和
道歉,但事实证明有一个我没有注意的错误:
此错误将在
could not resolve hostname
错误之后显示。虽然我不确定是什么可能导致错误,但我已经设法通过添加
ExitOnForwardFailure yes
到我的/etc/ssh/ssh_config
.ssh
抛出该错误时,这将退出会话。似乎基础
ssh
会话由于此错误而挂起。这阻止autossh
了尝试重新连接到我的服务器。通过对我的配置进行此更改,autossh
现在将尝试ssh
在抛出该错误时重试连接。systemctl status
autossh
由于尝试多次连接,现在充斥着这些错误:而以前只会显示其中一个错误,之后
autossh
会挂起。我在我的问题中包含的错误仍然存在,但是我认为这没什么好担心的,因为当服务首次开始运行时,网络连接可能没有正确建立。