gpt4 book ai didi

python - perl ssh 密码

转载 作者:太空宇宙 更新时间:2023-11-04 05:50:04 25 4
gpt4 key购买 nike

我正在尝试使用 perl 通过 SSH 连接到一台机器并发出一些命令...

my $ssh = Net::SSH::Perl->new($host);
$ssh->login($user,$pass);
my($stdout, $sterr, $exit) = $ssh->cmd($cmd);
print "$stdout \n"

这是一般的想法,但我仍然停留在输入密码的提示上。我也曾尝试使用 python,但也无法通过密码提示。另一方面,Expect 可以很好地处理密码。有谁知道会导致这种情况的原因吗?

编辑:附加信息

我在一台 linux 机器上使用 putty,然后通过 ssh 连接到更多的 linux 机器。使用上面的 perl 代码,用户名设置正确,但我每次都不得不手动输入密码。

最佳答案

  use strict;
use warnings;
use Expect;

$exp= Expect->spawn("ssh $host -l $user");

sleep(1);

$exp->expect($timeout,"Password:");
$exp->send("$pass\r");

$exp->expect($timeout,-re,'>');
$exp->send("ls -l\r");

$exp->expect($timeout,-re,'>');
$exp->send("mkdir aDir\r");

$exp->expect($timeout,-re,'>');
$exp->send("chmod 777 aDir\r");

$exp->expect($timeout,-re,'>');
$exp->send("exit\r");

出于显而易见的原因省略了变量声明...不是问题的确切答案,而是仅使用“Expect 模块”的可行解决方案。

关于python - perl ssh 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30672819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com