Thread Net::SSH2 und pty (7 answers)
Opened by mark05 at 2018-10-23 06:36

mark05
 2018-10-23 06:36
#189003 #189003
User since
2010-01-05
129 articles
BenutzerIn
[default_avatar]
hi

folgende situation .
ich muss etliche switche mit diversen aufgaben , automatisieren.

Mit den meisten der Geräte klappt das auch wie gewollt , jedoch macht
eine Model in soweit Probleme als das ein Pseudo Terminal , pty , benötigt wird .

Mit dem Modul Net::OpenSSH Funktioniert das Gerät jedoch wird hier leider
pro Befehl , in einer liste , eine Verbindung gemacht.

Verwende ich Net:SSH2 bekomme ich maximal den Banner nach der erfolgreichen Authentifizierung , der Befehl wird nicht mehr ausgeführt.

Ich befürchte das ich das Thema mit dem pty nicht ganz korrekt
verwende und deswegen der Fehler entsteht.

anbei mal mein Test / Beispiel Code.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/perl
use strict;
use warnings;
use English '-no_match_vars';
use Carp;
use Data::Dumper;
use Net::SSH2;


$Data::Dumper::Terse = 1;
$Data::Dumper::Useqq = 1;


$OUTPUT_AUTOFLUSH = 1;

my $ssh = Net::SSH2->new(trace => -1);
#$ssh->debug(1);

$ssh->connect('sw209a');
$ssh->auth_password('username','password') or carp $ssh->error;
$ssh->timeout(500);

my $chan = $ssh->channel();

$chan->pty('tty');
#$chan->pty('tty',{ echo => 0, vintr => ord('k') } );

$chan->blocking(0);
$chan->shell();


print {$chan} "\n";
_out ($chan);


print {$chan} "displ version\n";
_out($chan);


$ssh->disconnect;

sub _out {
my $ch = shift;

while (my $l = <$ch> ) {
chomp $l;
unless ( $l =~ /^\<\w+\>$/smx ) {
print "$l\n";
} ;
}
return;
}


ich hoffe ihr könnt mir helfen.

Holger

View full thread Net::SSH2 und pty