cloud server Raspberry Pi menggunakan Cloudflare Tunnel

Langkah 1: Persiapan Sistem

Update Sistem Memastikan semua paket di Raspberry Pi Anda up-to-date:

sudo apt-get update

 

Unduh dan Instal Cloudflared Cloudflared digunakan untuk membuat tunnel ke server Raspberry Pi Anda melalui Cloudflare:

curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb

sudo dpkg -i cloudflared.deb

 

Langkah 2: Konfigurasi OpenSSH Server

Edit Konfigurasi SSH Ubah konfigurasi SSH agar mendukung login yang diizinkan:

sudo nano /etc/ssh/sshd_config

Ubah atau tambahkan konfigurasi berikut:

PermitRootLogin yes
PubkeyAuthentication no
PasswordAuthentication yes
PermitEmptyPasswords no
KbdInteractiveAuthentication yes

 

Ads Jadwal Training bisaioti Offline
NoMateriTanggalWaktuHargaLokasiViewAction
1IOT PLC SCADA Siemens7-8 Juni 202508.00 - 16.002000000SurabayaSilabusDaftar Sekarang
2IOT PLC SCADA Omron14 - 15 Juni 202508.00 - 16.002000000SurabayaSilabusDaftar Sekarang
3IOT PLC SCADA Schneider21-22 Juni 202508.00 -16.002000000SurabayaSilabusDaftar Sekarang
4IOT PLC SCADA Allen Bradley28-29 Juni 202508.00-16.002000000SurabayaSilabusDaftar Sekarang
Atur Kata Sandi Pengguna Buat atau ubah kata sandi untuk pengguna (misalnya, bisaioti):

sudo passwd bisaioti

 

Aktifkan dan Mulai Layanan SSH Mulai ulang layanan SSH untuk menerapkan konfigurasi:

sudo systemctl start sshd.service
sudo systemctl start ssh


Reboot Sistem Untuk memastikan semua layanan berjalan dengan benar:

sudo reboot

 

Langkah 3: Konfigurasi Cloudflared

Login ke Cloudflare Login ke Cloudflare untuk mengautentikasi server:

cloudflared tunnel login
  1. Proses ini akan membuka browser untuk autentikasi.
Buat Tunnel Baru Buat tunnel dengan nama, misalnya iiot:

cloudflared tunnel create iiot

 

Konfigurasi Tunnel Pindah ke direktori konfigurasi Cloudflared:

cd ~/.cloudflared
sudo nano config.yml
Isi file konfigurasi seperti berikut:

tunnel: iiot
credentials-file: /home/bisaioti/.cloudflared/7a1711bc-7175-453c-8737-82de1f6e62c1.json


ingress:
  - hostname: ssh.energi.site
    service: ssh://localhost:22
  - service: http_status:404

 

Validasi Konfigurasi Pastikan konfigurasi Anda valid:

cloudflared tunnel ingress validate

 

Jalankan Tunnel Jalankan tunnel untuk menghubungkan server ke Cloudflare:

cloudflared tunnel run iiot

 

Instal Layanan Cloudflared Agar tunnel berjalan secara otomatis saat server di-reboot:

sudo cp /home/bisaioti/.cloudflared/config.yml /etc/cloudflared/config.yml
sudo cloudflared service install
sudo systemctl start cloudflared
sudo systemctl enable cloudflared

 

Langkah 4: Tambahkan DNS Record di Cloudflare

  1. Login ke Cloudflare Dashboard.
  2. Tambahkan CNAME Record:
    • Name: ssh
    • Target: <tunnel-id>.cfargotunnel.com
    • Proxy Status: Proxied.

Langkah 5: Konfigurasi SSH Certificate Authentication (Opsional)

Tambahkan Trusted CA Key Tambahkan kunci CA dari Cloudflare:

sudo nano /etc/ssh/ca.pub
Isi file dengan:
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBERneeF8VmqQasO3F1dy4MyK1ywGWzvW/rTBGZjNqFGAUPG2bdu7qVBx0y+GB/m7xV7g0no0tmL8f7oAo/TMtvI= open-ssh-ca@cloudflareaccess.org

 

Edit Konfigurasi SSH untuk Trusted CA Edit file konfigurasi SSH:

sudo nano /etc/ssh/sshd_config
Tambahkan:

TrustedUserCAKeys /etc/ssh/ca.pub

 

Restart Layanan SSH Terapkan perubahan konfigurasi:

sudo systemctl restart sshd.service

 

Langkah 6: Uji Koneksi

Konfigurasi SSH di Klien Edit file SSH config di komputer lokal (~/.ssh/config):

Match host ssh.energi.site exec "/usr/bin/cloudflared access ssh-gen --hostname %h"

  ProxyCommand /usr/bin/cloudflared access ssh --hostname %h

  IdentityFile ~/.cloudflared/%h-cf_key

  CertificateFile ~/.cloudflared/%h-cf_key-cert.pub

 

Uji Koneksi Jalankan perintah berikut untuk menguji koneksi SSH ke server:

ssh -v bisaioti@ssh.energi.site

 

Cara Install Cloudflare di windows

winget install –id Cloudflare.cloudflared

1. Tambahkan Public Key ke Server

  • Pastikan public key ini telah ditambahkan ke server dalam file ~/.ssh/authorized_keys untuk user yang akan Anda gunakan:
    1. Masuk ke server (misalnya, melalui metode otentikasi lain).

Buka file ~/.ssh/authorized_keys:

nano ~/.ssh/authorized_keys

  1. Tempelkan baris public key di atas ke dalam file, jika belum ada.
  2. Simpan dan keluar.

Periksa Hak Akses File: Pastikan file ~/.ssh/authorized_keys dan direktori .ssh memiliki izin yang benar:

chmod 600 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

 

2. Simpan Private Key di Lokal

  • Public key yang Anda tunjukkan memiliki pasangan private key. Pastikan Anda memiliki file private key yang sesuai.
  • File ini biasanya berbentuk:
    • id_ecdsa (private key)
    • id_ecdsa.pub (public key, tidak digunakan dalam otentikasi lokal).
  • Simpan file private key ke dalam folder ~/.ssh/ Anda, misalnya:
    makefile

    C:\Users\adi\.ssh\id_ecdsa

3. Tambahkan Public Key ke Server

  • Pastikan public key ini telah ditambahkan ke server dalam file ~/.ssh/authorized_keys untuk user yang akan Anda gunakan:
    1. Masuk ke server (misalnya, melalui metode otentikasi lain).

Buka file ~/.ssh/authorized_keys:

nano ~/.ssh/authorized_keys

  1. Tempelkan baris public key di atas ke dalam file, jika belum ada.
  2. Simpan dan keluar.

Periksa Hak Akses File: Pastikan file ~/.ssh/authorized_keys dan direktori .ssh memiliki izin yang benar:

chmod 600 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

 

4. Simpan Private Key di Lokal

  • Public key yang Anda tunjukkan memiliki pasangan private key. Pastikan Anda memiliki file private key yang sesuai.
  • File ini biasanya berbentuk:
    • id_ecdsa (private key)
    • id_ecdsa.pub (public key, tidak digunakan dalam otentikasi lokal).
  • Simpan file private key ke dalam folder ~/.ssh/ Anda, misalnya:
    makefile

    C:\Users\adi\.ssh\id_ecdsa

1. Pastikan Private Key Tersedia

  • Pastikan Anda memiliki file private key (id_ecdsa) yang cocok dengan public key yang ada di server.

Jika file private key hilang, Anda harus membuat pasangan kunci baru:

ssh-keygen -t ecdsa -b 256 -C “your_email@example.com”

 

  • Tambahkan public key baru ke server (~/.ssh/authorized_keys) melalui metode lain.

2. Gunakan Proxy Command Jika Diperlukan

Jika server menggunakan Cloudflare Access, tambahkan konfigurasi berikut ke ~/.ssh/config:

    Host ssh.energi.site

    HostName ssh.energi.site

    User bisaioti

    IdentityFile C:\Users\adi\.ssh\id_ecdsa

    ProxyCommand “C:\\Program Files (x86)\\cloudflared\\cloudflared.exe” access ssh –hostname %h

 

Mengatasi Masalah “Copying VS Code Server to Host”

Jika VS Code gagal menyalin server ke host, kemungkinan masalahnya adalah:

a. SCP Tidak Berfungsi

  • Pastikan Anda memiliki scp yang berfungsi di klien dan server.

Cobalah perintah berikut untuk memverifikasi:

scp somefile.txt your_username@ssh.energi.site:/tmp/

  • Jika gagal, pastikan server Anda memiliki OpenSSH server yang mendukung SCP.

b. Permission Issues

  • Pastikan direktori home Anda di server memiliki izin tulis.

Jalankan di server:

mkdir -p ~/.vscode-server

chmod 700 ~/.vscode-server

 

Apakah artikel ini bermanfaat?

User Rating: 4.55 ( 1 votes)

Leave a Reply

Your email address will not be published. Required fields are marked *

Daftar Sekarang