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
No | Materi | Tanggal | Waktu | Harga | Lokasi | View | Action |
---|---|---|---|---|---|---|---|
1 | IOT PLC SCADA Siemens | 7-8 Juni 2025 | 08.00 - 16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
2 | IOT PLC SCADA Omron | 14 - 15 Juni 2025 | 08.00 - 16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
3 | IOT PLC SCADA Schneider | 21-22 Juni 2025 | 08.00 -16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
4 | IOT PLC SCADA Allen Bradley | 28-29 Juni 2025 | 08.00-16.00 | 2000000 | Surabaya | Silabus | Daftar 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
- 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
- Login ke Cloudflare Dashboard.
- 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:
- Masuk ke server (misalnya, melalui metode otentikasi lain).
Buka file ~/.ssh/authorized_keys:
nano ~/.ssh/authorized_keys
- Tempelkan baris public key di atas ke dalam file, jika belum ada.
- 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:
- Masuk ke server (misalnya, melalui metode otentikasi lain).
Buka file ~/.ssh/authorized_keys:
nano ~/.ssh/authorized_keys
- Tempelkan baris public key di atas ke dalam file, jika belum ada.
- 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