Connecting Tech Pros Worldwide Forums | Help | Site Map

Getting to an SSH account over a HTTP proxy

=?ISO-8859-1?Q?BJ=F6rn_Lindqvist?=
Guest
 
Posts: n/a
#1: Jan 22 '07
I want to use Python to connect to a SSH account over a HTTP proxy to
automate some operations. I thought paramiko would be able to do that,
but it can not (it seems).

Is there some other Python module that can do what I want?

--
mvh Björn

Diez B. Roggisch
Guest
 
Posts: n/a
#2: Jan 22 '07

re: Getting to an SSH account over a HTTP proxy


BJörn Lindqvist wrote:
Quote:
I want to use Python to connect to a SSH account over a HTTP proxy to
automate some operations. I thought paramiko would be able to do that,
but it can not (it seems).
>
Is there some other Python module that can do what I want?
Is there anything that can do what you want? Last time I checked there is no
such thing as SSH-over-HTTP. Are you sure that is possible?

Diez
Yu-Xi Lim
Guest
 
Posts: n/a
#3: Jan 22 '07

re: Getting to an SSH account over a HTTP proxy


Diez B. Roggisch wrote:
Quote:
BJörn Lindqvist wrote:
>
Quote:
>I want to use Python to connect to a SSH account over a HTTP proxy to
>automate some operations. I thought paramiko would be able to do that,
>but it can not (it seems).
>>
>Is there some other Python module that can do what I want?
>
Is there anything that can do what you want? Last time I checked there is no
such thing as SSH-over-HTTP. Are you sure that is possible?
He's referring to the HTTP CONNECT method, which can tunnel arbitrary
TCP connections, not just HTTP. The IETF draft for this is titled
"Tunneling TCP based protocols through Web proxy servers".

AFAIK, there are no Python modules which support that. The protocol
itself is fairly simply though, so it shouldn't be too hard to write
your own wrapper or proxy for the client side. Things get a little more
complicated if you have to authenticate with the proxy first.

Jorgen Grahn
Guest
 
Posts: n/a
#4: Jan 22 '07

re: Getting to an SSH account over a HTTP proxy


On Mon, 22 Jan 2007 14:40:49 +0100, Diez B. Roggisch <deets@nospam.web.dewrote:
Quote:
BJörn Lindqvist wrote:
>
Quote:
>I want to use Python to connect to a SSH account over a HTTP proxy to
>automate some operations. I thought paramiko would be able to do that,
>but it can not (it seems).
>>
>Is there some other Python module that can do what I want?
>
Is there anything that can do what you want? Last time I checked there is no
such thing as SSH-over-HTTP. Are you sure that is possible?
I am pretty sure there is. Or at least TCP-over-HTTP, or IP-over-HTTP. An
acquaintance of mine used it to tonnel home through a corporate firewall. I
think -- I didn't want to know the details.

If you implement in the same way as ssh tunnels, the application doesn't
need to know anything about it -- you just talk to a TCP port on localhost.
Good for everyone involved.

/Jorgen

--
// Jorgen Grahn <grahn@ Ph'nglui mglw'nafh Cthulhu
\X/ snipabacken.dyndns.org R'lyeh wgah'nagl fhtagn!
Nanjundi
Guest
 
Posts: n/a
#5: Jan 23 '07

re: Getting to an SSH account over a HTTP proxy



BJörn Lindqvist wrote:
Quote:
I want to use Python to connect to a SSH account over a HTTP proxy to
automate some operations. I thought paramiko would be able to do that,
but it can not (it seems).
>
Is there some other Python module that can do what I want?
>
--
mvh Björn
Did you take a look at twisted library?
twistedmatrix.com
http://twistedmatrix.com/projects/co...o/clients.html


I haven't tried to connect over port 80, but its worth a try.

-N

Willi Richert
Guest
 
Posts: n/a
#6: Jan 23 '07

re: Getting to an SSH account over a HTTP proxy


Am Dienstag, 23. Januar 2007 02:16 schrieb Nanjundi:
Quote:
BJörn Lindqvist wrote:
Quote:
I want to use Python to connect to a SSH account over a HTTP proxy to
automate some operations. I thought paramiko would be able to do that,
but it can not (it seems).

Is there some other Python module that can do what I want?

--
mvh Björn
>
Did you take a look at twisted library?
twistedmatrix.com
http://twistedmatrix.com/projects/co...o/clients.html
>
>
I haven't tried to connect over port 80, but its worth a try.
>
-N
If you need it for automation you might want to use pexpect:
http://pexpect.sourceforge.net/

It listens to the tty-stream and simulates a user typing in commands. It is
very useful, e.g. if you want to start processes on many machines over ssh.
If there are gateways/firewalls between - no problem just use a
second "sendline('ssh user@nextmachine')"

The only problem is the regular expression: If e.g. you use a custom $PS1
variable for your prompt you have to account for that.

Regards,
wr
Anders Arnholm
Guest
 
Posts: n/a
#7: Jan 23 '07

re: Getting to an SSH account over a HTTP proxy


Jorgen Grahn <grahn+nntp@snipabacken.dyndns.orgskriver:
Quote:
I am pretty sure there is. Or at least TCP-over-HTTP, or IP-over-HTTP. An
acquaintance of mine used it to tonnel home through a corporate firewall. I
think -- I didn't want to know the details.
Ypu can tunnel ip over anything. (Even email if you like...) Nu tunnel
out from that company was based on http-proxy. A small program called
connect (the final version I used was by Shun-ichi Goto and under
GPL.) Bascilly it makes a http-proxt connect to an other site (my sshd)
Then using sshd and pppd as program inte other end makes a good way to
tunnel IP also :-)

/ Anders
--
http://anders.arnholm.nu/ Keep on Balping
amadain
Guest
 
Posts: n/a
#8: Jan 24 '07

re: Getting to an SSH account over a HTTP proxy


use pexpect to set the prompt after the login.

class Login(General):
"""Class spawning an ssh expect instance"""
def __init__(self, user, host, pwd, cfg_name=None, log=None):
if cfg_name:
self.testcell = test_config(cfg_name)
self.spawn = pexpect.spawn("ssh %s@%s" % (user, host), [], 100)
if log:
self.spawn.logfile = log
sshreply = self.spawn.expect(["Last login", "assword", "connecting"])

if sshreply == 1:
self.spawn.sendline(pwd)
self.spawn.expect("Last login")
elif sshreply == 2:
time.sleep(0.1)
self.spawn.sendline("yes")
print self.spawn.after
Login(user, host, cfg_name, log)
time.sleep(1)
self.prompt=prompt_chg(self.spawn, "PROMPT:")
self.spawn.sendline("uname -a")
self.spawn.expect(self.prompt)


On Jan 23, 10:28 am, Willi Richert <w.rich...@gmx.netwrote:
Quote:
Am Dienstag, 23. Januar 2007 02:16 schrieb Nanjundi:
>
>
>
Quote:
BJörn Lindqvist wrote:
Quote:
I want to use Python to connect to a SSH account over a HTTP proxy to
automate some operations. I thought paramiko would be able to do that,
but it can not (it seems).
>
Quote:
Quote:
Is there some other Python module that can do what I want?
>
Quote:
Quote:
--
mvh Björn
>
Quote:
Did you take a look at twisted library?
twistedmatrix.com
http://twistedmatrix.com/projects/co...o/clients.html
>
Quote:
I haven't tried to connect over port 80, but its worth a try.
>
Quote:
-NIf you need it for automation you might want to usepexpect:http://pexpect.sourceforge.net/
>
It listens to the tty-stream and simulates a user typing in commands. It is
very useful, e.g. if you want to start processes on many machines over ssh.
If there are gateways/firewalls between - no problem just use a
second "sendline('ssh user@nextmachine')"
>
The only problem is the regular expression: If e.g. you use a custom $PS1
variable for your prompt you have to account for that.

Regards,
wr
=?ISO-8859-1?Q?BJ=F6rn_Lindqvist?=
Guest
 
Posts: n/a
#9: Jan 25 '07

re: Getting to an SSH account over a HTTP proxy


On 22 Jan 2007 17:16:35 -0800, Nanjundi <nanjundi@gmail.comwrote:
Quote:
BJörn Lindqvist wrote:
Quote:
I want to use Python to connect to a SSH account over a HTTP proxy to
automate some operations. I thought paramiko would be able to do that,
but it can not (it seems).

Is there some other Python module that can do what I want?

--
mvh Björn
>
Did you take a look at twisted library?
twistedmatrix.com
http://twistedmatrix.com/projects/co...o/clients.html
>
>
I haven't tried to connect over port 80, but its worth a try.
I looked at Twisted, but I did not understand how it could solve my
problem. I do not want to create my own SSH client and, AFAICT, there
is no SSH client in Twisted. The library also seem to have some
problems with handling HTTP proxies in a transparent way:
http://twistedmatrix.com/trac/ticket/1774

--
mvh Björn
=?ISO-8859-1?Q?BJ=F6rn_Lindqvist?=
Guest
 
Posts: n/a
#10: Jan 25 '07

re: Getting to an SSH account over a HTTP proxy


On 1/22/07, Yu-Xi Lim <yuxi@ece.gatech.eduwrote:
Quote:
He's referring to the HTTP CONNECT method, which can tunnel arbitrary
TCP connections, not just HTTP. The IETF draft for this is titled
"Tunneling TCP based protocols through Web proxy servers".
>
AFAIK, there are no Python modules which support that. The protocol
itself is fairly simply though, so it shouldn't be too hard to write
your own wrapper or proxy for the client side. Things get a little more
complicated if you have to authenticate with the proxy first.
The proxy in question requires authentication. Do you mean that I
should be able to write something that handles the communication to
the proxy and then run a library like paramiko "over that"? I have no
idea how to do that.

--
mvh Björn
Nanjundi
Guest
 
Posts: n/a
#11: Jan 28 '07

re: Getting to an SSH account over a HTTP proxy



Quote:
problem. I do not want to create my own SSH client and, AFAICT, there
is no SSH client in Twisted. The library also seem to have some
problems with handling HTTP proxies in a transparent way:http://twistedmatrix.com/trac/ticket/1774
>
--
mvh Björn

There is a ssh implementation in twisted.
http://twistedmatrix.com/users/z3p/f...onch-talk.html

Are you able to authenticate and run commands using a ssh client on
port 80?
I will try to post an example if possible.
-N

Closed Thread