我有一个perl脚本,我需要使用ssh连接到另一台机器,并运行另一个perl脚本。我尝试使用这一行:
system("ssh $admin_server 'perl /Perl/scripts/capture_server_restarts_gse.pl $month $date'");
但是每次脚本到达该行时,我都会收到远程计算机的提示,并且脚本不会运行。
如何解决此问题,以便脚本在其他计算机上自动运行而不显示提示。
注意:我不需要密码和用户连接到我们已经解决过的远程机器。
答案 0 :(得分:4)
为什么不将您的公钥复制到另一台机器上?那样你就会被预先授权。
Here are the instructions了解如何使用ssh-keygen
否则您必须使用密码提供ssh
,这很棘手,因为ssh
通常从tty
获取输入,您必须使用密码配置脚本。
答案 1 :(得分:0)
SSH服务器可以配置为始终运行一些自定义shell而不是从客户端传递的命令。
尝试从命令行运行一些简单的命令,即:
ssh server ls
不太可能的是,插入到系统参数中的perl变量可能包含一些需要更好转义的shell元字符。例如,$ admin_server中的分号。