in reply to Passing telnet commands through SSH
Hi There,
One approach that might come in handy here is SSH tunneling. This is a technique for directing a remote SSH connection back to your local server.
To recap, you have ssh access to an intermediate host that has telnet access to the destination machine. Telnet normally runs on port 23.
Hopefully your local host is a 'Nix machine, which means that you can use a recipe such as this to set up port forwarding: Setting up an SSH tunnel
E.g. in another window: % ssh -g -L 10023:telnet-host:23 ssh-host
Telnet will then appear to be running locally on port 10023:
You can then adapt you script to connect to telnet on your localhost on port 10023.% telnet localhost 10023 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. .... login:
Hope this helps.#!/usr/bin/perl use warnings; use strict; use Net::Telnet; my ($username, $password) = @ARGV; die "usage $0 username password" unless $username && $password; my $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die', Port => 10 +023); $telnet->open('localhost'); $telnet->waitfor('/[\$#%:><][\s\b]+$/'); print "found login prompt..."; $telnet->print($username); $telnet->waitfor('/[\$#%:><][\s\b]+$/'); print "found password prompt..."; $telnet->print($password); print "logged in yay!\n";
In Section
Seekers of Perl Wisdom