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