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