--- layout: post status: publish published: true title: ! 'sshsplit: a dynamic tunnel multiplexer' wordpress_id: 228 wordpress_url: http://pro.grammatic.org/post-sshsplit-a-dynamic-tunnel-multiplexer-74.aspx date: !binary |- MjAxMC0wMy0wMiAxMzoxMTozNCArMDEwMA== date_gmt: !binary |- MjAxMC0wMy0wMiAxMzoxMTozNCArMDEwMA== categories: - Technology - InfoSec tags: - sshsplit - privacy - ssh - software comments: [] --- <p>Introducing sshsplit</p> <p>sshsplit is a GPL-3 licensed application that multiplexes ssh dynamic tunnels.</p> <p><a href="http://pro.grammatic.org/sshsplit/sshsplit-screen1.png"><img style="width:500px;border:0px;" src="http://pro.grammatic.org/sshsplit/sshsplit-screen1.png" alt="sshsplit GUI"></img></a></p> <p>For example, you might normally run:</p> <blockquote><p>ssh -D 54321 remote-host</p></blockquote> <p>to get a tunnel on 127.0.0.1:54321 that goes through remote-host.</p> <p>However, if you are using a network-resource-intensive application (torrent clients for example), this single tunnel will not suffice for, say, 1000 concurrent connections.</p> <p>sshsplit launches several instances of the ssh dynamic tunnel and then load balances between them.</p> <p>If no arguments are passed, sshsplit launches the configuration GUI. Otherwise, for help, run: sshsplit -h</p> <p>sshsplit can also be configured to use any binary you would like and you can suppress the default arguments it passes (-ND <port>) using the -S option.</p> <p><a href="http://www.martineve.com/sshsplit/sshsplit-screen2.png"><img style="width:500px;border:0px;" src="http://www.martineve.com/sshsplit/sshsplit-screen2.png" alt="sshsplit command line"></img></a></p> <p>The code, my first effort in python, is available at <a href="https://launchpad.net/sshsplit">the sshsplit launchpad home</a>.</p> <p>There is also a ppa that you can use to install sshsplit on Ubuntu machines on <a href="https://launchpad.net/~martineve/+archive/ppa">my launchpad page</a>.</p> <p>Please report any bugs to launchpad!</p>