【发布时间】:2016-07-08 21:49:22
【问题描述】:
我必须从我使用 Net::SSH::Perl 登录的远程计算机执行 SSH,即下面代码中传递给 $ssh->cmd 的“cmd”是另一个 SSH(比如用户名@主机名)。有没有办法传递第二个 SSH 的密码,然后在第二个远程机器上执行命令。 另外,我不能使用 ssh 密钥对登录或 sshpass 之类的工具。有人可以帮忙吗?
use Net::SSH::Perl;
my $hostname = "hostname";
my $username = "username";
my $password = "password";
my $cmd = <command to be executed on remote machine>;
my $ssh = Net::SSH::Perl->new("$hostname", debug=>0);
$ssh->login("$username","$password");
my ($stdout,$stderr,$exit) = $ssh->cmd("$cmd");
print $stdout;
【问题讨论】:
-
我记得一个相关的问题。你真的必须这样做吗,ssh in chain?为什么不回到主机并再次从它 ssh 呢?
-
SSH 到第二台远程机器只能从第一台远程机器完成
-
应该有可能使用此答案中的方法创建链 ssh 命令:stackoverflow.com/questions/35961937/…