ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

別サーバのシェルを CGI から実行する

IPC::Run モジュールでできるっぽい。あとは $command 部分をいじってあげれば完成。パスワードをいちいち聞かれてしまうのはSSHパスワードを環境変数に設定すれば ok なのかなーと思っているのですが、どうも情報が見当たらない。RSA公開鍵を設定すると、パスワード認証できなくなるんでしたっけ…いや、そんなことはない筈。でも鍵ファイルを持たせたくないなぁ

#!/usr/local/bin/perl
use strict;

use IPC::Run qw( run timeout );

my(@cmd, $in, $out, $err);
my $remote = '192.168.1.254';

eval {
    ## test ##
    my $command = '/bin/ls';
    @cmd = ('ssh', '-l', 'user', $remote, $command);
    run( \@cmd,  \undef, \$out, \$err);
    print "out - $out\n";
    print "error - $err\n";

};if($@){
    print "error : $@";
}