结对编程利器:SSH和Tmux

开发 开发工具
大部分的结对编程和远程办公的人对SSH和Tmux的组合并不陌生,网上也有很多好的文章,这里我来为大家介绍一个简单的解决方案。

大部分的结对编程和远程办公的人对SSH和Tmux的组合并不陌生,网上也有很多好的文章,这里我来为大家介绍一个简单的解决方案。

创建一个账户别名(Alias)

***步是为你的主要用户账户创建一个别名。这一步是可选的,选了这一步你就不必去了解每个开发者的实际用户名了。

从系统偏好设置中的“用户&群组”面板中,右击你的用户账户,然后点击高级选项。


Scrfdvdfgdfgeen_Shot_2014_02_17_at_10_36_28_AM

从高级选项面板中,添加一个别名来让你的小伙伴们连接你的电脑时用。


Screen_Shot_2014_02_17_at_10_52_48_AM

配置SSH

接下来我们从系统偏好设置中的共享面板中打开远程登录。


Screen_Shot_2014_02_17_at_10_56_24_AM


然后更新我们的SSH登录设置来关掉密码验证,只允许公共密钥(public-key)验证。

  1. # /etc/sshd_config 
  2. PasswordAuthentication no 
  3. ... 
  4. ChallengeResponseAuthentication no 

注意:为了时上面的设置生效,你需要重启sshd。在Mac上,只需要在系统偏好设置中的共享面板中重置一下远程登录的选中状态就可以了。

设置远程用户

因为我们将SSH配置成了只允许公共密钥验证,我们需要将小伙伴们的公共密钥添加到验证密钥(authorized_keys)文件中。

  1. > cat pair_rsa.pub >> ~/.ssh/authorized_keys 

接下来我们需要编辑这个文件来保证任何连接我们电脑的用户都会被自动添加到我们的Tmux会话(session)中。

  1. # ~/.ssh/authorized_keys 
  2.   
  3. command="/usr/local/bin/tmux attach -t pair" ABCDEFGHIJKLMNOPQRSTUVXYZ pair@user.com 

这样一来,任何通过SSH连接的人都会被添加到以pair为别名的tmux绘画中。

创建pair会话

1.创建一个以pair命名的tmux会话。

  1. > tmux new-session -s pair 

2.创建你电脑中的pair SSH

  1. > ssh pair@hostname 

3.优点
这样设置完,只有你的电脑中存在一个名为pair的tmux会话时别人才可以连接到你的电脑。你关闭名为pair的tmux会话时已经存在的连接会自动断开。另一个好处是当你的私人密钥被使用时你会被提示输入密码,这样可以提防那些居心不良的小伙伴。

福利

为了方便完成以上的步骤,我写了一个shell脚本。不过你需要将”GitHub-auth”改为你的pair对应在github上的用户名。

免责声明:代码中用到了sudo,自己注意

  1. #!/bin/sh 
  2.   
  3. # create an account alias 
  4. sudo dscl . -append /Users/$USER RecordName Pair pair 
  5.   
  6. # configure sshd to only allow public-key authentication 
  7. sudo sed -E -i.bak 's/^#?(PasswordAuthentication|ChallengeResponseAuthentication).*$/\1 no/' /etc/sshd_config 
  8.   
  9. # add pair user public key(s) 
  10. touch ~/.ssh/authorized_keys 
  11. gh-auth add --users githubuser --command="$( which tmux ) attach -t pair" 

原文链接:http://www.collectiveidea.com/blog/archives/2014/02/18/a-simple-pair-programming-setup-with-ssh-and-tmux/

译文链接:http://blog.jobbole.com/60545/

责任编辑:陈四芳 来源: 伯乐在线
相关推荐

2013-05-06 10:22:07

结对编程敏捷开发敏捷管理

2013-01-30 10:03:01

结对编程编程语言

2013-11-28 10:22:37

编程结对编程

2010-01-27 09:33:40

结对编程

2013-06-20 09:38:57

2015-09-11 08:59:03

结对编程

2023-01-18 23:20:25

编程开发

2013-05-24 09:37:25

结对编程结对编程实践BitBucket

2023-04-20 18:45:44

2015-09-11 09:43:27

分析编程特征

2011-06-03 09:58:03

结对编程程序员

2024-01-11 08:00:00

人工智能开发

2011-08-30 10:03:59

软件工程

2017-10-20 11:07:45

编程代码编程模式

2021-06-06 16:56:49

异步编程Completable

2014-03-13 11:08:42

结对编程代码审查

2015-08-19 13:35:56

编程代码审查开发者

2010-01-27 09:16:18

结对编程

2020-02-25 21:32:59

TmuxkubectlKubernetes

2015-09-15 08:46:27

代码质量结对编程
点赞
收藏

51CTO技术栈公众号