无法从 crontab 连接到 ssh

无法从 crontab 连接到 ssh

我可以使用此命令从命令行创建 ssh 连接(无需密码):

ssh -R 9900:localhost:22 user@host

我需要在系统重新启动时运行此命令,因此我将其放入 bash 脚本中并将此行添加到 crontab 中:

@reboot /home/me/script.sh > output

但在输出中我收到此错误: ssh:无法解析主机名 myhost:名称或服务未知

我认为这是因为该脚本在建立互联网连接之前启动。我sleep(180)在 ssh 命令之前加了一个,但没有帮助。有什么建议吗?

答案1

理想情况下,这不应该使用 来完成cron,这就是您的 init 系统的用途。您可以创建依赖于您的网络状态的服务。

但是,如果您打算使用cron

#!/bin/sh

host="foo.bar.com"

# Wait for host's SSH server to become accessible
while ! ssh "user@$host" exit >/dev/null 2>&1; then
    sleep 1
fi

ssh -R 9900:localhost:22 "user@$host"

相关内容