结对编程利器:SSH和Tmux

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

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

创建一个账户别名(Alias)

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

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

image.png

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

image.png

配置SSH

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

image.png

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

# /etc/sshd_config

PasswordAuthentication no

...

ChallengeResponseAuthentication no

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


设置远程用户

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

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

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

# ~/.ssh/authorized_keys

command="/usr/local/bin/tmux attach -t pair" ABCDEFGHIJKLMNOPQRSTUVXYZ pair@user.com

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


创建pair会话

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

> tmux new-session -s pair

2.创建你电脑中的pair SSH

> ssh pair@hostname

3.优点

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


福利

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

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

#!/bin/sh

# create an account alias

sudo dscl . -append /Users/$USER RecordName Pair pair

# configure sshd to only allow public-key authentication

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

# add pair user public key(s)

touch ~/.ssh/authorized_keys

gh-auth add --users githubuser --command="$( which tmux ) attach -t pair"

相关文章
|
2月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
296 146
|
5月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
1574 0
|
8月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
375 10
|
安全 Linux Shell
Linux中SSH命令介绍
Linux中SSH命令介绍
608 2
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
监控 安全 Ubuntu
在Linux中,如何进行SSH服务配置?
在Linux中,如何进行SSH服务配置?
|
Shell Linux 网络安全
Linux怎样在使用ssh 链接时就指定gcc 的版本
Linux怎样在使用ssh 链接时就指定gcc 的版本
181 7
|
安全 Linux Shell
【Linux基础】SSH登录
安全外壳协议(Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。 SSH通过在网络中建立安全隧道来实现SSH客户端与服务器之间的连接。 SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。
413 6
|
网络协议 Linux 网络安全
Linux配置SSH允许TCP转发
Linux配置SSH允许TCP转发
175 1
|
安全 Linux 网络安全
在Linux中,如何配置SSH以确保远程连接的安全?
在Linux中,如何配置SSH以确保远程连接的安全?