SSH your IM contacts

Did you ever wanted to connect to your computer but couldn’t make an SSH connection because it is behind a NAT, dynamic IP or firewall? Telepathy-ssh is for you!

Telepathy-ssh is a simple client/service program that make an ssh connection through a telepathy Tube.

$ telepathy-ssh-client gabble/jabber/testman2_40jabber_2ebelnet_2ebe1 testman@jabber.belnet.be
xclaesse@127.0.0.1’s password:
Linux xclaesse-laptop 2.6.32-23-generic #37-Ubuntu SMP Fri Jun 11 08:03:28 UTC 2010 x86_64 GNU/Linux
Ubuntu 10.04 LTS

Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/

Last login: Mon Jul 12 17:55:39 2010 from xclaesse-laptop
xclaesse@xclaesse-laptop:~$ exit
logout
Connection to 127.0.0.1 closed.

Of course I’m planning to make the CLI a bit better. At least I would like to let choose the account between a list instead of having to type its ID manually. You can know your accountID using “mc-tool list” command. Also since the telepathy tube creates a local socket on which the ssh client connects, you see that it says it’s connecting to “127.0.0.1”, is it possible to tell ssh client to display another hostname?

I wrote that tool to make easy to connect my mother’s computer remotely, whithout dealing with her dynamic IP and NAT. If you also find that tool useful, and have suggestions, feel free to post a comment, or even patches :)

17 Responses to “SSH your IM contacts”

  1. Alexey Fisher says:

    This is genial! i always send a script with ssh revers connection if somebody asked me to help.

  2. bochecha says:

    That is gonna make my debugging my mom’s computer so much easier. :)

    Thanks a lot!

  3. BeS says:

    Great! What do you think about making it accessible via GUI? Right click on an chat contact who is online -> connect by ssh -> ask for username/password -> open terminal window wit ssh session

  4. asder says:

    WOW! this is awesome! implemented as an empathy plugin or standalone program it could entirely replace programs like LogMeIn Hamachi (since their linux support is crap)!!!! JUST WOW!!!

  5. xclaesse says:

    @BeS: Since ssh is a CLI, I don’t think it’s important to make a GUI to access it… But I could make it nicer, though.

    @asder: It is standalone programs, but your IM account must be connected using telepathy (Empathy client) in both sides.

  6. Michael says:

    Rock……. Make a release and get it packaged!

  7. Edward Hervey says:

    Wow, seriously seriously seriously impressed ! Can this work with any IM protocol (i.e. mom is using iChat/AIM and her mac has ssh activated and it could use her online account to figure out the ip to connect to) ?

  8. xclaesse says:

    @Edward: Both sides must be connected using telepathy, and it works with any ConnectionManager/protocol that implements Tubes… which means only Jabber and salut atm.

  9. Christophe Vandeplas says:

    Why make things so complex when a simple SSL-VPN tunnel on port tcp/443 can give you even more features?
    It also bypasses the firewalls, works with proxies and gives you partial or full network/server/internet access.

    With OpenVPN it is completely free and you can even run it if you already use port tcp/443 with your webserver thanks to the “portsharing” feature.

  10. xclaesse says:

    @Christophe: Of course there are millions of solutions that offer much better features and performance. But a VPN does not solve the dynamic IP problem, and you still have to forward a port in your router settings if you are behind a NAT. My solution has the advantage that you have absolutely nothing to configure, if 2 computers can communicate over Jabber, they can have ssh connection too. This is useful if you need to quickly help someone and needs an ssh connection to run some commands. That’s what I do with my mother :)

  11. Alban says:

    Does the recipient automatically accept the tube request, or is there a dialog saying “You contact xxx wants to connect to your computer via SSH. [Accept][Refuse]“?

  12. xclaesse says:

    @Alban: Atm it silently accept the Tube, but you still have to make the ssh authentification. I could add an approver, but it’s not yet done.

  13. makuchaku says:

    Amazing!
    Please package it…

  14. Hibbel says:

    I think creating a GUI would be a good idea even if ssh is a cli tool. Wouldn’t it be nice if we would have an entry in the empathy context menu “connect via ssh” and beeing presented with a new terminal asking us for legitimation ?

  15. xclaesse says:

    We are not going to add everything in Empathy’s UI, that would be too much cluttered. That’s why we rejected the idea of making empathy plugins that could add entries in the menu. We could create separate UI that display a contact list and let you start telepathy-ssh, though. That can be done as external app.

  16. Guyou says:

    Really impressed. I recently discovered I just need such tool (for a mother-like computer to manage).

    Please, note that the Git link is broken.