我有一个脚本来监控我的服务器的远程状态。为此,我在每台远程机器上运行一个脚本,它将有关正常运行时间、cpu 负载、Distro 版本的信息记录到一个日志文件中。我的主服务器上的脚本通过对这些文件执行 scp 来查询他们的服务器,如下所示scp -i ~/.ssh/id_rsa pingmonitor@IP:~/pingmon.dat ./
:我有一些机器要查询这些信息,而另一些机器的远程服务器不提供这些信息。
我想要做的是在主服务器上使用私钥运行一个 scp,如果成功,就会收到文件。如果密钥尚未添加到远程服务器,则 scp 应该会失败,并且无需再做任何事情。
问题是如果服务器之前没有设置ssh访问(在known_hosts中不可用),它会停止脚本,并提示:“无法建立主机的真实性。您确定要继续连接(是/否)?”。如果输入是,它会要求输入用户密码大约 3 次。
我试图删除是/否,并通过管道从包含三个换行符的文件中提示密码,但这并不能阻止它要求输入密码
如何使脚本自动化,以便如果私钥无效,它会停止会话并将控制权返回给脚本,而不会停止并要求输入密码?
我正在使用 Debian Wheezy。