https://github.com/tg123/sshpiper
有了这个东西 就可以制作一个超级跳板机
通过一些规则隔离登陆人群 极大提升安全性
+---------+ +------------------+ +-----------------+
| | | | | |
| Bob +----ssh -l bob----+ | SSH Piper +-------------> Bob' machine |
| | | | | | | |
+---------+ | | | | +-----------------+
+---> pipe-by-name--+ |
+---------+ | | | | +-----------------+
| | | | | | | |
| Alice +----ssh -l alice--+ | +-------------> Alice' machine |
| | | | | |
+---------+ +------------------+ +-----------------+
# 一个配合sshpiper + docker 的合租用法
几个朋友共用一个 云服务器 (主要是因为穷)
有人瞎搞 整个服务器 就不能用了
而且还有 些文件 不想被别人看到
软件冲突 等等于是 想到 用 docker 隔离各位租户
不过登录 就成了 大问题
于是 我在 前段时间 开发了 https://github.com/tg123/sshpiper 来解决登录问题
这样大家 使用域名 可以 直接登录 到自己的 容器中
这样就完全看不到别人了
目前 sshpiper 提供了 deb 和 binary
可以到这里下载 https://github.com/tg123/sshpiper/releases
下载后直接安装就可以了
sudo dpkg -i sshpiperd_0.1_amd64.deb
演示服务器 是一台 debian 7 (阿里云)
阿里云 的 debian 想用 docker 得升级下内核
docker 官方有详细攻略
https://docs.docker.com/installation/debian/
创建一个可以 ssh 的 debian 容器 给 小明 用
这里边直接用了 tutum 的镜像 当然你也可以自己作镜像
$ docker run --name xiaoming -d -p 127.0.0.1:2201:22 tutum/debian
查看刚才镜像的root的密码
$ docker logs xiaoming
登录到 容器里边 给小明创建账户
$ ssh root@127.0.01 -p 2201
# adduser xiaoming
[可选] 如果需要 sudo 如何解决
# apt-get install sudo
# usermod -a -G sudo xiaoming
# id xiaoming
uid=1000(xiaoming) gid=1000(xiaoming) groups=1000(xiaoming),27(sudo)
同样给 小红 配置一个 独立的容器
$ docker run --name xiaohong -d -p 127.0.0.1:2202:22 tutum/debian
... 配置步骤省略
创建工作目录
cd /var/sshpiper
sudo mkdir xiaoming
sudo mkdir xiaohong
把服务器地址 写进去
sudo sh -c "umask 077 && echo 127.0.0.1:2201 > xiaoming/sshpiper_upstream"
sudo sh -c "umask 077 && echo 127.0.0.1:2202 > xiaohong/sshpiper_upstream"
sshpiper 默认监听在 2222 上 可以通过 /etc/sshpiperd.conf 修改
登录 (不同用户登录 到了 不容的机器的容器里边)
ssh 127.0.0.1 -p 2222 -l xiaoming
xiaoming@e61c2dd7d9c5:~
ssh 127.0.0.1 -p 2222 -l xiaohong
xiaohong@0cd87b1f5d5f
他们互相看不到对方 装软件 也不会互相影响
刚才配置完密码是可以登录的
但是 证书登录需要 更多配置
这是由于 ssh 安全机制 防止 中间人 攻击的原因
sshpiper 需要对 ssh 验证过程作二次签名 所以 还需要一个证书
验证时候 sshpiper 作映射 来解决中间人 问题
生成 小明的 二次签名证书
sudo ssh-keygen -f /var/sshpiper/xiaoming/id_rsa
让小明的 服务器 二次签名 证书
ssh-copy-id -i /var/sshpiper/xiaoming/id_rsa "xiaoming@127.0.0.1 -p 2201"
让 sshpiper 信任 小明 (需要小明 提供 他的公钥 忘记了 可以通过 ssh-keygen -y -f 证书私钥查看)
sudo sh -c "umask 077 && echo 'ssh-rsa AAAAB3NzaC1y..省略..utWKMuk/CzM+B9C9kVQGa7R' >> /var/sshpiper/xiaoming/authorized_keys"
这样 小明 就可以 通过 他自己的 私钥 登录 到 服务器 上他自己的容器 中了
ssh 127.0.0.1 -p 2222 -l xiaoming -i xiaoming_key
docker 的容器 里边的 root 就是 宿主机器的 root 这个安全 问题 大家要清楚的
不过 认识的人 一起 合租一个 服务器 就不用考虑这些了
sshpiper 主要是帮你 解决 如何让 大家更方便的 跳到 自己的 容器中
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.