使用cloudflare tunnel SSH远端主机

cloudflare tunnel的介绍可以查看

现在我们使用tunnel通道创建ssh远程远端主机.

前置条件

一台Linux主机(Centos\Ubuntu)均可以

- 参考`https://www.kningyuan.top/post/10020.html`

一个已经托管在cloudflare的域名

- 参考`https://www.kningyuan.top/post/10031.html`

服务器端

创建tunnel
1
2
3
4
5
6
7
8
# 登录cloudflare
cloudflared tunnel login
# 创建一个tunnel,名字自定,这里用my-tunnel
cloudflared tunnel create ssh
# 查看tunnel,会有一个显示ID,xxxx-xxx-xxx-xxxxx 的名称
cloudflared tunnel list
# 更新dns
cloudflared tunnel r oute dns ssh ssh.example.com

创建完tunnel后,就可以创建配置文件,一般创建在用户根目录下的.cloudfared/

vi .cloudfalred/config.yml

1
2
3
4
5
6
tunnel: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
credentials-file: .cloudflared/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json
ingress:
# ssh
- hostname: ssh.example.com
service: ssh://localhost

注意服务使用的是ssh

运行tunnel

1
cloudflared tunnel run ssh 

客户端

客户端需要下载cloudflared,设定在发起ssh.example.com访问时使用cloudflared来发起ssh

如何客户端使用的是windows,可以参考https://www.kningyuan.top/post/10007.html,安装git软件.

安装完成后需要配置一下.ssh/config文件.

1
2
Host ssh.example.com
ProxyCommand C:\\cloudflared\\cloudflared.exe access ssh --hostname %h

针对ssh.example.com发起ssh访问的是cloudflared.

使用git bash 尝试对ssh.example.com发起ssh访问

016