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 [email protected] -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 "[email protected] -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 主要是帮你 解决 如何让 大家更方便的 跳到 自己的 容器中
1
flame 2015-01-13 23:13:04 +08:00 via Android
不太懂。。。不知道rootpanel是如何做的,rootpanel这个看起来还不错.
|
2
farmer1992 OP @flame 什么是 rootpanel
|
3
flame 2015-01-14 12:54:00 +08:00 via Android
|
4
devtiange 2015-01-17 14:06:47 +08:00
高级, 楼主厉害
|
5
ivyliner 2015-04-04 23:28:49 +08:00
楼主@farmer1992这个东西很有意思, 试用了一把非常不错,赞一个. 不知道能否提供一下详细的添加信任关系的文档. 我尝试建立 host a -> ssh piper(host b) -> host c 发现信任关系建立不了. 反复对着这个文档和github的 readme 都成功不了. 另外看到有 ssh-copy-id 的计划, 希望能继续完善下去.
|