Ssh
AutoSSH 無法在啟動後直接解析主機名
我想建立一條到我的家庭伺服器的隧道,該隧道將在我的機器啟動後立即建立。使用這個答案,我在
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 james@my.host.name [Install] WantedBy=multi-user.target
有沒有辦法解決這個問題?
道歉,但事實證明有一個我沒有註意的錯誤:
Error: remote port forwarding failed for listen port 3030
此錯誤將在
could not resolve hostname
錯誤之後顯示。雖然我不確定是什麼可能導致錯誤,但我已經設法通過添加
ExitOnForwardFailure yes
到我的/etc/ssh/ssh_config
.ssh
拋出該錯誤時,這將退出會話。似乎基礎
ssh
會話由於此錯誤而掛起。這阻止autossh
了嘗試重新連接到我的伺服器。通過對我的配置進行此更改,autossh
現在將嘗試ssh
在拋出該錯誤時重試連接。
systemctl status``autossh
由於嘗試多次連接,現在充斥著這些錯誤:starting ssh (count 16) ssh child pid is 2463 Error: remote port forwarding failed for listen port 3030 ssh exited with error status 255; restarting ssh starting ssh (count 17) ssh child pid is 2473 Error: remote port forwarding failed for listen port 3030 ssh exited with error status 255; restarting ssh starting ssh (count 18) ssh child pid is 2481
而以前只會顯示其中一個錯誤,之後
autossh
會掛起。我在我的問題中包含的錯誤仍然存在,但是我認為這沒什麼好擔心的,因為當服務首次開始執行時,網路連接可能沒有正確建立。
代替
After=network.target
和
After=network-online.target