1

我有一个 perl 脚本,我需要使用 ssh 连接到另一台机器并运行另一个 perl 脚本。我尝试使用这条线:

system("ssh $admin_server 'perl /Perl/scripts/capture_server_restarts_gse.pl $month $date'");

但是每次脚本到达该行时,我都会收到远程机器的提示,并且脚本不会运行。

我该如何解决这个问题,以便脚本在另一台机器上自动运行而不显示提示。

注意:我不需要密码和用户来连接到我们已经解决的远程机器。

4

2 回答 2

4

为什么不将您的公钥复制到另一台机器上?这样,您将获得预先授权。

以下是有关如何使用的说明ssh-keygen

否则,您必须输入ssh密码,这很棘手,因为ssh通常从 a 获取输入,tty并且您必须使用密码配置脚本。

于 2013-01-14T15:47:30.000 回答
0

SSH 服务器可以配置为始终运行一些自定义 shell,而不是从客户端传递的命令。

尝试从命令行运行一些简单的命令,即:

  ssh server ls

一个不太可能的可能性是,插入到系统参数中的 perl 变量可能包含一些需要更好转义的 shell 元字符。例如,$admin_server 中的分号。

于 2013-01-15T07:56:59.870 回答