Skip to main content

Cloudflared SSH Tunnel

Install Cloudflared

curl -fsSL https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb

Authenticate Cloudflared

cloudflared tunnel login

Create a Tunnel

cloudflared tunnel create <TUNNEL_NAME>

Configure the Tunnel

nano ~/.cloudflared/config.yml

Add the following configuration

tunnel: ssh-tunnel
credentials-file: /home/youruser/.cloudflared/<tunnel-uuid>.json

ingress:
- hostname: ssh.example.com
service: ssh://localhost:22
- service: http_status:404
sudo cp ~/.cloudflared/config.yml /etc/cloudflared/config.yml

Route DNS

cloudflared tunnel route dns ssh-tunnel ssh.example.com

Install as a Service

sudo cloudflared service install
sudo systemctl start cloudflared
sudo systemctl enable cloudflared

Connect via SSH


cloudflared access ssh --hostname ssh.example.com

or connect native by ssh

nano ~/.ssh/config

Add the following configuration

Host ssh.example.com
ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h
User yourlinuxuser