用于 HTTP(S)、WS(S)、TCP、别名和 SNI 的开源 SSH 隧道技术。
如果你喜欢 serveo/ngrok 风格的便捷分享,但又想使用普通的 SSH 并运行自己的基础设施,那么 sish 就是为此而生的。
文档 | 托管服务 | 发布页 | Docker 镜像 | 由 pico.sh 赞助
sish 运行着一个专注于转发和多路复用的 SSH 服务器。用户可以使用他们熟悉的命令进行连接,sish 负责处理路由。
验证工作流最快的方式:
ssh -R 80:localhost:8080 tuns.sh
这将会为你的本地应用(运行在 8080 端口)创建一个公网 URL。
拉取镜像:
docker pull antoniomika/sish:latest
准备目录:
mkdir -p ~/sish/ssl ~/sish/keys ~/sish/pubkeys
cp ~/.ssh/id_ed25519.pub ~/sish/pubkeys
运行:
docker run -itd --name sish \
-v ~/sish/ssl:/ssl \
-v ~/sish/keys:/keys \
-v ~/sish/pubkeys:/pubkeys \
--net=host antoniomika/sish:latest \
--ssh-address=:2222 \
--http-address=:80 \
--https-address=:443 \
--https=true \
--https-certificate-directory=/ssl \
--authentication-keys-directory=/pubkeys \
--private-keys-directory=/keys \
--bind-random-ports=false \
--domain=example.com
然后连接:
ssh -p 2222 -R 80:localhost:8080 example.com
ssh -R myapp:80:localhost:8080 tuns.sh
你的应用(localhost:8080)将可以通过 https://myapp.tuns.sh 访问。
ssh -R 2222:localhost:22 tuns.sh
localhost:22 可通过 tuns.sh:2222 访问
ssh -R mylaptop:22:localhost:22 tuns.sh
从另一客户端访问:
ssh -J tuns.sh mylaptop
克隆:
git clone [email protected]:antoniomika/sish.git
cd sish
本地启动:
go run main.go --http-address localhost:3000 --domain testing.ssi.sh
或者使用:
make dev
测试隧道:
ssh -p 2222 -R 80:localhost:8080 testing.ssi.sh
testing.ssi.sh 已配置为指向本地主机用于开发。