Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如果密钥无效,则终止scp会话,而不提示输入密码_Bash_Ssh_Rsync_Scp - Fatal编程技术网

Bash 如果密钥无效,则终止scp会话,而不提示输入密码

Bash 如果密钥无效,则终止scp会话,而不提示输入密码,bash,ssh,rsync,scp,Bash,Ssh,Rsync,Scp,我有一个脚本来监视服务器的远程状态。为此,我在每台远程机器上运行一个脚本,它将有关正常运行时间、cpu负载和发行版版本的信息记录到日志文件中。我的主服务器上的脚本通过对以下文件执行scp来查询它们的服务器:scp-i~/.ssh/id\u rsapingmonitor@IP:~/pingmon.dat./。我有一些机器需要查询这些信息,还有一些机器的远程服务器不提供这些信息 我要做的是在主服务器上使用私钥运行一个scp,如果成功,将接收该文件。如果尚未将密钥添加到远程服务器,则scp将失败,不再

我有一个脚本来监视服务器的远程状态。为此,我在每台远程机器上运行一个脚本,它将有关正常运行时间、cpu负载和发行版版本的信息记录到日志文件中。我的主服务器上的脚本通过对以下文件执行scp来查询它们的服务器:scp-i~/.ssh/id\u rsapingmonitor@IP:~/pingmon.dat./。我有一些机器需要查询这些信息,还有一些机器的远程服务器不提供这些信息

我要做的是在主服务器上使用私钥运行一个scp,如果成功,将接收该文件。如果尚未将密钥添加到远程服务器,则scp将失败,不再执行任何操作

问题是,如果服务器尚未设置为ssh访问,而以前在已知的_主机中不可用,则会暂停脚本,并提示:无法建立主机的真实性。是否确实要继续连接?是/否?。如果输入yes,则需要用户密码大约3次

我试图通过管道从一个包含三个换行符的文件中删除yes/no和密码提示,但这并不能阻止它请求密码

如何使脚本自动化,以便在私钥无效的情况下,它停止会话并将控制权返回到脚本,而无需暂停和请求密码


我正在使用Debian Wheezy。

在ssh\u配置中设置PasswordAuthentication=no,很可能在~/.ssh/config中。如果这不起作用,您也可以将NumberOfPasswordPrompts=0设置为零,这样您就不会被提示输入密码

在sshd_config中禁用密码身份验证。@devnull我想OP正在客户端寻找解决方案。服务器和客户端都是我的机器。我尝试过这个,但没有成功。即使在/etc/ssh/sshd_config中设置了PasswordAuthentication no之后,我也会收到输入密码的提示。同样设置NumberOfPasswordPrompts 0导致此错误:服务ssh重新启动/etc/ssh/sshd_配置:第88行:错误配置选项:NumberOfPasswordPrompts/etc/ssh/sshd_配置:终止,1个错误配置选项不在服务器sshd的配置中!,但是在客户端ssh->/home/user/.ssh/config的配置中!如果文件不存在,您可以创建它。也尝试过了。仍然要求输入密码。已在这两个服务器上重新启动ssh服务。这与相同的Debian版本在这里起作用。你试过在/etc/ssh/ssh\u config中设置它吗?它成功了。同时打开四个外壳端子会让人感到困惑: