All Projects → goerz → tmuxpair

goerz / tmuxpair

Licence: MIT license
Command line script for setting up a temporary tmux session for pair programming

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to tmuxpair

Teleconsole
Command line tool to share your UNIX terminal and forward local TCP ports to people you trust.
Stars: ✭ 2,750 (+7988.24%)
Mutual labels:  ssh, pair-programming
Kubectl Cssh
A kubectl plugin to ssh into Kubernetes nodes within separate tmux panes
Stars: ✭ 76 (+123.53%)
Mutual labels:  tmux, ssh
config
Fig's integrations with bash, zsh, fish, ssh, and tmux. Also contains Fig's installation and update scripts. Finally, this repo is the root of the .fig folder that is installed on your computer when you download Fig!
Stars: ✭ 44 (+29.41%)
Mutual labels:  tmux, ssh
Tmux Cssh
ClusterSSH with tmux
Stars: ✭ 123 (+261.76%)
Mutual labels:  tmux, ssh
Bridgy
cloud inventory + ssh + tmux + sshfs
Stars: ✭ 374 (+1000%)
Mutual labels:  tmux, ssh
Eternalterminal
Re-Connectable secure remote shell
Stars: ✭ 2,191 (+6344.12%)
Mutual labels:  tmux, ssh
dotfiles
Me confeegs.. me precious confeegs.
Stars: ✭ 123 (+261.76%)
Mutual labels:  tmux
noc
Official read only mirror for
Stars: ✭ 84 (+147.06%)
Mutual labels:  ssh
dotfiles
🍀 My dotfiles macOS / Linux (Ubuntu, Arch) / Android
Stars: ✭ 16 (-52.94%)
Mutual labels:  tmux
nyx
⚙️Nix[OS] Configuration
Stars: ✭ 50 (+47.06%)
Mutual labels:  tmux
ssh
golang ssh lib simple for use
Stars: ✭ 15 (-55.88%)
Mutual labels:  ssh
dystopia
Low to medium multithreaded Ubuntu Core honeypot coded in Python.
Stars: ✭ 59 (+73.53%)
Mutual labels:  ssh
config
Bunch of scripts that keep me productive
Stars: ✭ 29 (-14.71%)
Mutual labels:  tmux
tutorial-quest
As you delve deep into the Dungeons to take on the biggest baddest bosses, DON'T GO ALONE!! Take THE Open Source Raid Guild with you!
Stars: ✭ 35 (+2.94%)
Mutual labels:  pair-programming
ssh-rs
In addition to encryption library, pure RUST implementation of SSH-2.0 client protocol (除加密库之外 纯rust实现的 ssh-2.0 client 协议)
Stars: ✭ 18 (-47.06%)
Mutual labels:  ssh
tmux-suspend
Plugin that lets you suspend local tmux session, so that you can work with nested remote tmux session painlessly.
Stars: ✭ 58 (+70.59%)
Mutual labels:  tmux
dotfiles
My dot files.
Stars: ✭ 66 (+94.12%)
Mutual labels:  tmux
sshecret
I can keep a SSHecret
Stars: ✭ 56 (+64.71%)
Mutual labels:  ssh
seahorse
ELKFH - Elastic, Logstash, Kibana, Filebeat and Honeypot (HTTP, HTTPS, SSH, RDP, VNC, Redis, MySQL, MONGO, SMB, LDAP)
Stars: ✭ 31 (-8.82%)
Mutual labels:  ssh
synpse
Synpse is an all-in-one solution to manage your servers and IoT devices providing declarative app deployment, SSH access and TCP tunnels
Stars: ✭ 17 (-50%)
Mutual labels:  ssh

tmuxpair

Build Status

Command line script for setting up a temporary tmux session for pair programming.

© 2016 by Michael Goerz. This software is available under the terms of the MIT license.

Installation & Usage

Using virtualenv/pipsi/conda env is recommended. Install the tmuxpair executable with

pip install tmuxpair

Run tmuxpair -h for usage details.

Reasonably Secure Pair Programming

A simple yet powerful way for pair programming is to have a partner connect to a tmux session on your machine. However, this implies that you give them SSH access, with the obvious security implications: Your partner now has complete control over your user account. They could use scp to copy any of your files, read your email, or pull a prank on you by messing with your .bashrc.

While you should probably only engage in pair programming with people that you place a certain minimum amount of trust in, it would be nice to eliminate at least the obvious ways for your partner to do anything behind your back. tmuxpair achieves this by using key-based authentication together with the feature of SSH to limit a key to a specific command. This follows the approach outlined in Tres Trantham’s blog post. Note that we also lock down scp access and port forwarding (which could allow your partner to access any firewalled server on your network).

We can go a little further in ensuring only supervised access by strictly limiting your partner’s connection to the duration of the pair-programming session.tmuxpair does this by by wrapping tmux; when you run e.g.

tmuxpair partner_key.pub

the public key in the file partner_key.pub is temporarily appended to your ~/.ssh/authorized_keys file (with the appropriate options), and tmuxpair attaches to a tmux session “pair”. As soon as the session ends – or you detach from it! – your partner’s SSH connection is closed and the original authorized_keys file is restored.

Of course, if your partner were sufficiently determined to break into your system, they could still manage to do so. Our assumption here is that supervised access is “reasonably secure” in most environments. If your partner does not need write access, tmuxpair provides a view-only mode that should not leave any security loopholes.

Security could be enhanced further by running the tmux session under a separate and dedicated account instead of your normal user account. However, the purpose of the tmuxpair script is to provide a robust solution that allows you to quickly share a terminal with a colleague, without any further setup.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].