Panduan Lengkap: Remote Server Lokal via Cloudflare Tunnel (VS Code, Termius, & Rsync)

Memiliki server development di rumah memang menyenangkan, tapi bagaimana jika kita ingin coding dari kafe atau luar kota tanpa harus membuka celah keamanan (port forwarding) di router rumah?

Solusi paling modern dan aman saat ini adalah menggunakan Cloudflare Tunnels berpadu dengan Cloudflare Access (Zero Trust). Dengan cara ini, server kita tetap tersembunyi dari internet publik, tapi kita bisa mengaksesnya menggunakan otentikasi One-Time Password (OTP) yang dikirim via email.

Artikel ini adalah catatan pribadi saya tentang bagaimana mengonfigurasi PC klien (Windows) agar bisa menggunakan VS Code Remote SSH, Termius, dan Rsync untuk menembus tunnel Cloudflare tersebut dengan mulus.

🛠️ Persiapan Awal di Laptop Klien (Windows)

Asumsinya, Anda sudah membuat tunnel di server lokal Anda dan mengonfigurasi domain (misalnya sshdev22.digitos.id) di dashboard Cloudflare Zero Trust. Sekarang, kita perlu menyiapkan laptop klien.

1. Instalasi cloudflared

Kita butuh aplikasi cloudflared berjalan di latar belakang laptop untuk membuka jalan.

Sangat disarankan untuk meletakkan file ini di folder yang tidak memiliki spasi pada namanya (jangan di Program Files) agar VS Code tidak kebingungan.

  1. Unduh cloudflared.exe untuk Windows dari rilis resmi GitHub Cloudflare.
  2. Buat folder baru di drive C, misalnya C:\Cloudflared.
  3. Pindahkan file yang diunduh ke folder tersebut dan pastikan namanya adalah cloudflared.exe.

🚀 1. Setup VS Code Remote SSH

Tantangan utama VS Code adalah ia memiliki klien SSH bawaan yang kadang gagal membaca environment variables atau path yang rumit di Windows.

Langkah A: Edit File Konfigurasi SSH

Buka file C:\Users\NamaUser\.ssh\config dan tambahkan konfigurasi host server Anda:

Host sshdev22.digitos.id
    ProxyCommand C:\Cloudflared\cloudflared.exe access ssh --hostname %h

(Perhatikan penggunaan path absolut yang bersih tanpa spasi dan tanpa tanda kutip).

Langkah B: Pancing Otentikasi OTP

Buka Command Prompt (CMD) biasa di Windows, lalu jalankan:

ssh [email protected]

Aplikasi akan membuka web browser otomatis. Masukkan email, dapatkan kode OTP, dan setujui ( Approve ). Setelah berhasil login di CMD, biarkan CMD tersebut. Token kini sudah tersimpan di laptop.

Langkah C: Kunci Platform di VS Code (Mengatasi Error “Canceled”)

Terkadang VS Code gagal terhubung karena timeout saat menunggu kita memilih sistem operasi server. Agar VS Code otomatis tahu server kita adalah Linux:

  1. Buka VS Code, tekan Ctrl + Shift + P -> pilih Preferences: Open User Settings (JSON).
  2. Tambahkan baris berikut di bagian paling bawah (sebelum kurung kurawal penutup):
"remote.SSH.remotePlatform": {
    "sshdev22.digitos.id": "linux"
}

Sekarang Anda bisa menggunakan ekstensi Remote – SSH di VS Code dan langsung masuk ke server!

🔑 2. Login Otomatis Tanpa Password (SSH Keys)

Agar tidak perlu mengetikkan password server setiap kali VS Code terhubung (setelah lolos OTP Cloudflare), gunakan SSH Key.

  1. Buka CMD di Windows, buat kunci (jika belum punya): ssh-keygen -t ed25519 -C "Laptop-Remote" (tekan Enter terus sampai selesai, kosongkan passphrase).
  2. Buka file C:\Users\NamaUser\.ssh\id_ed25519.pub dengan Notepad, dan Copy seluruh isinya.
  3. Di dalam server lokal Anda (bisa lewat VS Code terminal yang sudah terhubung), buka file ~/.ssh/authorized_keys dan Paste kuncinya di baris paling bawah.
  4. Tambahkan IdentityFile di file config SSH Windows Anda:
Host sshdev22.digitos.id
    ProxyCommand C:\Cloudflared\cloudflared.exe access ssh --hostname %h
    IdentityFile ~/.ssh/id_ed25519

💻 3. Akses Menggunakan Termius (Local Port Forwarding)

Aplikasi SSH GUI seperti Termius tidak bisa membaca perintah ProxyCommand di file config. Jadi kita gunakan trik Local Port Forwarding.

Langkah A: Buka Jembatan Lokal

Buka CMD di Windows, jalankan perintah ini (jangan ditutup selama pakai Termius):

C:\Cloudflared\cloudflared.exe access tcp --hostname sshdev22.digitos.id --url localhost:2222

Troubleshooting: Jika muncul error bind: Only one usage of each socket address, artinya port 2222 masih menyangkut di proses sebelumnya. Matikan paksa dengan perintah: taskkill /F /IM cloudflared.exe /T

Langkah B: Setup Termius

Di aplikasi Termius, buat profil host baru dengan pengaturan:

  • Address: 127.0.0.1
  • Port: 2222
  • Username: username_server
  • Password/Keys: Masukkan password atau pilih SSH Key.

Klik Connect, dan Anda langsung tembus ke server!

📂 4. Transfer File Cepat dengan Rsync

Kabar baiknya, karena pengaturan ProxyCommand sudah ada di ~/.ssh/config, rsync akan secara otomatis menumpang tunnel Cloudflare tersebut tanpa perlu konfigurasi tambahan.

Gunakan Git Bash atau WSL di Windows Anda untuk menjalankan rsync:

rsync -avzP /c/Users/NamaUser/Documents/ProjectLokal/ [email protected]:/home/username_server/web/

Bagaimana jika Rsync dari Server lain ke Server lokal ini?

Sama saja! Pastikan server sumber juga sudah terinstal cloudflared. Lakukan pancingan ssh terlebih dahulu di terminal server sumber. Nanti akan muncul URL di terminal. Copy URL tersebut, buka di browser laptop Anda untuk persetujuan OTP. Setelah disetujui, rsync di server sumber siap dijalankan. Jika butuh otomatisasi cronjob (tanpa campur tangan manusia), Anda bisa menggunakan fitur Service Tokens dari Cloudflare.

Ditulis untuk dokumentasi pengembangan infrastruktur lokal di Digitos. Semoga bermanfaat!