CloudFlare Zero Trustでngrokの代わりにSSHする Raspberry Pi 4編

cloudflaredのインストール

sudo apt install curl lsb-release

curl -L https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-archive-keyring.gpg >/dev/null

echo "deb [signed-by=/usr/share/keyrings/cloudflare-archive-keyring.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list

sudo apt update

sudo apt install cloudflared

cloudflareにログイン

sudo cloudflared tunnel login

cert.pemの移動

sudo mv /home/{user}/.cloudflared/cert.pem /etc/cloudflared/cert.pem

tunnelの作成

sudo cloudflared tunnel create {TunnelName}

認証用のjsonファイルが書かれるのでファイルパスを保存しとく
例: /etc/cloudflared/{UUID}.json

config.ymlの作成

sudo vi /etc/cloudflared/config.yml

tunnel: {TunnelName}
credentials-file: /etc/cloudflared/{UUID}.json

ingress:
    - hostname: {HostName}
      service: ssh://localhost:22
    - service: http_status:404

tunnelとDNSの紐付け

sudo cloudflared tunnel route dns {TunnelName} {HostName}

サービスに登録

sudo cloudflared service install

sudo systemctl enable --now cloudflared

sudo systemctl status cloudflared -l

SSHクライアント側(MacでBrewを使う場合)でのcloudflareのインストール

※ tunnel作成するとインストールコマンド教えてくれる

$ brew install cloudflare/cloudflare/cloudflared

ssh設定

$ cloudflared access ssh-config --hostname {HostName}

host書き込み

vi ~/.ssh/config

Host {HostName}
ProxyCommand /opt/homebrew/bin/cloudflared access ssh --hostname %h

いいなと思ったら応援しよう!