billatq has asked for the wisdom of the Perl Monks concerning the following question:

I'm going to be flying on via Continental in the next few weeks and happen to know that they will have Verizon JetConnect on board. This has the nice feature of letting you get on various instant messaging services while in flight, but doesn't let you do anything useful, such as ssh to a machine.

Therefore, I want to hack together a little proxy for ssh using Perl, but wanted to solicit some suggestions before taking a stab at it. I'm thinking that PoCo::Client::MSN, PoCo::Server::TCP, and PoCo::Client::TCP probably hold the keys to tunneling the data over MSN, but haven't even attempted anything this crazy before.

Comments?

Replies are listed 'Best First'.
Re: ssh proxy via msn messenger
by b10m (Vicar) on Mar 06, 2005 at 10:10 UTC

    Can't you just tell your SSH daemon to listen on whatever port MSN Messenger is using?

    --
    b10m

    All code is usually tested, but rarely trusted.
      I don't think so. This would be akin to the following problem and solution: </tongue location="cheek">
      I have a person who speaks only German that I would like to be able to speak to someone who speaks only French. My intention is to create a device that takes German in and outputs French so that the Frenchman can understand it. Likewise, once the Frenchman responds, his response will be translated back into German so that he can understand it
      Solution: Just have the German call the Frenchman directly.
      </tongue/> My point here is that MSN and ssh are two different protocols, so expecting to have an ssh server be able to understand MSN is like what I've stated above: not likely to work.

      thor

      Feel the white light, the light within
      Be your own disciple, fan the sparks of will
      For all of us waiting, your kingdom will come

        I presume(d) that you could use your own laptop for this (maybe wrong). If so, then you can type `ssh -p $MSN_PORT $SERVER` in your favourite shell.

        Your SSH daemon doesn't need to understand MSN Messenger protocols.

        Please explain to me why this would be such a big problem. I don't see where the whole protocol comes into play. As long as they have some kind of router, routing your packets from your laptop to your server, I'd be happy.

        Or to put it in your crazy example:

        I have a parcel that I need to bring from point A to point B. There's a direct route that I can walk, but somehow someone suggested me to give it to the German guy, who will give it to the French guy.
        --
        b10m

        All code is usually tested, but rarely trusted.
Re: ssh proxy via msn messenger
by billatq (Initiate) on Mar 06, 2005 at 16:16 UTC
    Okay, so perhaps I missed a few details. The plane has a linux box with hardcoded values of hosts and ports to forward packets to. It also has hardcoded dns, so I can't use that as a transport. So while I'd like to just point at the port that msn uses on my server, that's not going to work.

      Ok, if you really insist ;)

      Bot-Depot has a MSN.pm that seems useful to you.

      --
      b10m

      All code is usually tested, but rarely trusted.
Re: ssh proxy via msn messenger
by phroggy (Monk) on Mar 07, 2005 at 00:05 UTC
    For those of you suggesting binding sshd to the port used by MSN, that won't work - Verizon JetConnect does NOT give you direct access to the Internet; they run very limited proxy servers which will relay your messages between the plane and the Internet. According to their web page, they support AIM, MSN Messenger, Yahoo IM, ICQ, and a webmail interface to e-mail accounts (via pop3, OWA, AOL, Yahoo and Hotmail). Again, they don't just route or forward those ports, they run a proxy server which only works with those protocols. What billatq wants to do is essentially tunnel an IP session on top of an IM protocol. It's been done through HTTP and DNS before...
    for $a(-2,12){for $b(0..7){$c=0;$_?hex substr( ef7fa1866706caeff02289402844,2*$_+$a,2)&2**(7-$b):0 and $c+=2**(7-$_)for(0..7);print chr $c;}}
      if they allow web surfing you can try google 'web ssh' but if after you want to forward new ports trough this, I am not sure you can... Bye
        Sorry if I wasn't clear - no, they do not allow web surfing.
        perl -e '($,,@_)=("er",",\n","l Hack"," P","Just anoth"); print reverse @_;'