perl - Perl ssh连接并执行telnet连接

标签 perl ssh telnet router cisco

我有多个配置有从5个指定主机进行的telnet访问的cisco路由器。现在,我想在一台主机上执行perl脚本,该主机通过ssh连接到另一台主机,并检查是否可以将telnet连接到路由器。
我尝试了系统“ssh host”命令,但不幸的是没有任何乐趣。有人可以帮我吗?

提前谢谢了。

我尝试了以下方法,但没有成功。有什么想法吗?


use Net::OpenSSH;

$ssh = Net::OpenSSH->new("linuxserver", user => "username", password => "password", master_stderr_discard => 1);
$command = "telnet routername";
@out = $ssh->capture({stdin_data => "routerpassword\n"}, $command);

print "@out\n";


最佳答案

您可以使用Net::SSH2使用tcpip方法连接并将连接转发到路由器。或者,您可以使用Net::OpenSSH(仅需要OpenSSH二进制文件)执行相同操作,请参阅Tunnels上的信息。

关于perl - Perl ssh连接并执行telnet连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5539684/

相关文章:

perl - die 打印什么?

perl - shift->{o} = $o; 是什么意思?在 Perl 中做什么?

perl - 在启用自动刷新的情况下运行 perl 二进制文件

ssh - 通过 SSH 在具有有限权限的计算机上使用 RSUB

SSH key 设置但仍要求输入密码(但不是用于第二、第三等 session )

batch-file - 是否可以使用批处理文件来建立 telnet session 、发送命令并将输出写入文件?

java - 第一次读取 BufferedReader 流时产生的垃圾

perl - 理解代码 : Hash, grep 重复(修改为检查多个元素)

python - 与 SSHTunnelForwarder 功能 - 基于方式来维持连接?

smtp - Telnet smtp.mail-必须首先发出STARTTLS命令