DevHeads.net

Jump box ideas

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.

Comments

Re: Jump box ideas

By John W Higgins at 05/26/2011 - 20:02

Afternoon Josh,

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

<a href="http://net-ssh.rubyforge.org/ssh/v2/api/" title="http://net-ssh.rubyforge.org/ssh/v2/api/">http://net-ssh.rubyforge.org/ssh/v2/api/</a> <- 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