--000e0cdf6ac8ad069504a436a37c
Content-Type: text/plain; charset=ISO-8859-1

Afternoon Josh,

On Thu, May 26, 2011 at 4:20 PM, Josh Hurtado <djotter / mac.com> wrote:

> Hi Everyone,
>  I posted a differnt but related thread about this so though I would hit
> from a differnt direction.
>
> I have a secure SSH box which has access to my differnt Cisco routers. I
> want to write a program that
>
> a) ssh's from my machine to the jump box
> b) run through a list of routers and telnet into each one and grab the
> running config
> c) close the session
>
> Trying to fiugre out a good way to approach this. I can get the NET::SSH
> session open to the box, but can't figure out how to go form there to
> step 2.
>

You want to use SSH Fowarding to forward your telnet sessions over the wire
to the remote side.

http://net-ssh.rubyforge.org/ssh/v2/api/ <- the ssh api documentation has
forwarding as the third to last line of the large example at the top of the
page.

Basically you do the following - you tell the ssh session to forward a LOCAL
port over the wire to a remote address (in this case one of your cisco
servers).

So as an example

If you had a server at 10.0.0.1 port 21 then you could write

ssh.forward.local(12345, "10.0.0.1", 21)

Then use the telnet object to connect to port 12345 - this will
automatically be forwarded over the wire to 10.0.0.1 port 21 via the ssh
connection.

So for step 2 you would create an array of your router addresses and then
something like this

addrs  '10.0.0.1', '10.0.0.2', '10.0.0.3']
addrs.each { |addr|
  ssh.forward.local(12345, addr, 21)
    connect to port 12345 on your localhost with telnet and pull down the
config
}

John
John

--000e0cdf6ac8ad069504a436a37c--