背景
如官方文档所示,Cloudflare Tunnel要求我们对SSH客户端进行配置,使本地的cloudflared软件代理SSH才能连接。
存在问题
由于MobaXterm的Session实质为嵌入式PuTTY,不使用OpenSSH样式的配置文件(即~/.ssh/config
),因此在"C:\Users\<username>\.ssh\config"
和C:\Users\<username>\AppData\Roaming\MobaXterm\home\.ssh\config
配置如下官方文档要求的参数,都仅能在cmd或MobaXterm的Local Terminal中连接,而无法使用MobaXterm的SSH Session连接。
# C:\Users\<username>\.ssh\config
Host ssh.example.com
ProxyCommand "C:\Program Files (x86)\cloudflared\cloudflared.exe" access ssh --hostname %h
# C:\Users\<username>\AppData\Roaming\MobaXterm\home\.ssh\config
Host ssh.example.com
ProxyCommand "/drives/C/Program Files (x86)/cloudflared/cloudflared.exe" access ssh --hostname %h
报错信息如图所示:
解决方案
在创建或编辑 SSH Session 的界面,选择 Network setting 选项卡,Proxy type 设置为Local
,Port 为80
(这时上面Basic settings里的那个Port就不重要了),并且 Local proxy command 设置为C:\Program Files (x86)\cloudflared\cloudflared.exe access ssh --hostname %host
。
注意这里官方文档是--hostname %h
,而这里要填--hostname %host
。
保存后开启该SSH Session,这时MobaXterm会异常地卡顿一段时间,然后成功连接。