http://www.perlmonks.org?node_id=831481


in reply to Re: Telnet over SSH2 from Windows
in thread Telnet over SSH2 from Windows

Hello,

Plink was nice suggestion because it worked. With command string below, I was able first to establish tunnel via SSH server to the device with telnet and command it with Net::Telnet. The plink command explanation can be found from plink documentation and it is also quite nicely explained in HOWTO ssh port-forwarding.

I am still more than happy to hear explanations why reading during telnet session seems to break the write and if this is somehow doable from Windows.

Thank You
# From DOS prompt, give command below and leave the session open. # Version 0.60 from plink is needed because it contains the -nc # parameter. Version 0.58 did not have this parameter. The remote # host in here is the device IP address being access via telnet. # # plink.exe -L 1555:(remote host):(remote port) (ssh server) -l <user +name> -pw <password> -nc (remote host):(remote port) #!/usr/bin/perl -w use strict; use warnings; use Net::Telnet; use Data::Dumper; my $telnet = (); my @l_resp_a = (); $telnet = Net::Telnet->new( Timeout => 10, Host => 'localhost', # or 127.0.0.1 Port => 1555 ); if( $telnet ){ print "connected\n"; $telnet->prompt('/<expected prompt>/'); $telnet->cmd( String => 'ls -al', Output => \@l_resp_a ); } else{ print "failed to connect"; }