1 poin oleh GN⁺ 2025-02-09 | 1 komentar | Bagikan ke WhatsApp
  • VSCode dan pengeditan jarak jauh

    • VSCode memiliki fitur yang mendukung pengeditan jarak jauh melalui SSH.
    • Banyak pengguna memakai VSCode dan LLM (model bahasa besar) untuk menghasilkan kode.
    • Ketika LLM menghasilkan kode yang salah, itu disebut "halusinasi", dan untuk mengatasinya penting menutup loop antara LLM dan lingkungan eksekusi melalui pengaturan "agen".
    • Proses ini berlangsung dengan cara LLM menghasilkan kode, agen mengeksekusi kode, menghasilkan error, lalu memberikan umpan balik itu ke LLM untuk diulangi.
  • Masalah dalam lingkungan pengembangan

    • Tidak ideal jika proses pengembangan yang berulang seperti ini terjadi di laptop pengembang.
    • Karena LLM juga dapat memengaruhi konfigurasi sistem, lebih baik melakukan pekerjaan seperti ini di instans Linux yang bersih.
  • Emacs dan Tramp

    • Emacs mendukung sistem pengeditan jarak jauh melalui Elisp berguna bernama Tramp.
    • Tramp dapat terhubung ke lingkungan interaktif yang bisa menjalankan perintah shell Bourne melalui sesi SSH.
  • Pendekatan VSCode

    • VSCode memiliki fungsi yang mirip dengan Tramp, tetapi tidak seperti Tramp, ia mencoba melakukan intervensi menyeluruh pada koneksi jarak jauh.
    • Ia menjalankan Bash snippet stager untuk mengunduh agen, termasuk pemasangan biner Node.
    • Agen dijalankan melalui SSH dengan port forwarding dan terhubung ke frontend VSCode melalui koneksi WebSockets.
    • Protokol dasar koneksi ini dapat menjelajahi sistem file, mengedit file arbitrer, memulai proses shell PTY sendiri, dan memiliki persistensi.
  • Kekhawatiran keamanan

    • Pemakaian VSCode secara serampangan untuk pengeditan jarak jauh di server pengembangan dapat menimbulkan masalah bagi perlindungan informasi sensitif maupun infrastruktur.
    • Secara khusus, ada kekhawatiran bahwa menggunakan pengeditan jarak jauh VSCode saat terjadi masalah di lingkungan produksi nyata sangat berbahaya.
  • Kesimpulan

    • Secara internal di Fly.io, agen serumit ini tidak mutlak diperlukan untuk menghubungkan Fly Machine dan VSCode secara langsung.
    • Namun, demi keperluan blog, mereka akhirnya menyelidiki cara kerja koneksi jarak jauh VSCode, dan dalam prosesnya mengetahui fakta-fakta di atas.

1 komentar

 
GN⁺ 2025-02-09
Opini Hacker News
  • Sudah sebulan ingin menulis artikel panjang tentang perangkat lunak. Kurt khawatir karena tidak menulis di blog. Akhirnya memutuskan menulis sesuatu yang singkat. Rasanya bisa selesai dalam 30 menit

    • Menulis singkat tentang perangkat lunak yang sedang dibahas
  • Semakin paham cara kerja VSCode, semakin terasa seperti dipertahankan dengan tambal sulam. Bahkan hanya melihat ekstensi SSH saja, workspace URI punya dua format

    • Ada nama host dan dokumen JSON yang dikodekan dalam heksadesimal
    • Jika nama host mengandung huruf besar, diperlukan informasi tambahan
    • Koneksi SSH dapat mengatur ekstensi yang dipasang di server. Tetapi jika terlalu banyak dipasang, tidak bisa terhubung ke host Windows
  • Saya tidak paham masalah keamanannya. Jika bisa masuk ke mesin lewat SSH dan meneruskan socket, seharusnya hal lain juga bisa dilakukan

    • Saya penasaran apakah masalahnya adalah orang di jaringan yang sama bisa terhubung ke port yang diteruskan tanpa SSH
    • Sebagai pengguna, saya suka sistem SSH milik VSCode karena bekerja dengan baik
  • Saat mengelola server jaringan, masalah besarnya adalah para mahasiswa tidak memahami klien OpenSSH

    • Saya memberi tahu mahasiswa agar tidak menggunakan plugin remote server VSCode
    • Mahasiswa yang penggunaan disknya lebih dari 100MB semuanya pengguna VSCode
    • Saya menetapkan batas proses pengguna ke 45. Jika mahasiswa mengabaikan peringatan, mereka akan terkena batas proses
    • Saya memakai skrip yang mematikan proses .vscode-server setiap 10 detik
  • Fitur pengeditan SSH di VSCode bekerja dengan baik. Jadi saya tidak lagi memakai vim, nano, atau micro di mesin jarak jauh

    • Karena agent tidak mengganggu, pekerjaan jadi lebih mudah
    • Mungkin ada risiko keamanan, tetapi pengalaman pengembangnya sangat baik
  • Saya jadi tahu bahwa eksekusi kode jarak jauh itu mungkin. Kepercayaan yang keliru pada alat pengembangan sering berujung penyesalan

    • SSH adalah solusi dari era 90-an. Pada dasarnya telnet dengan beberapa fitur tambahan
    • Banyak hal yang dibangun lewat SSH itu tidak efisien
    • Kita tidak membuat alat yang tepat. Kita hanya terus menambahkan lebih banyak fitur ke alat yang sudah ada
  • Istilah "SSH agent" membingungkan. Biasanya itu berarti daemon yang menyimpan cache token autentikasi

  • Orang yang merekomendasikan sshfs tidak memahami kelebihan lingkungan VSCode SSH Remote

    • Seluruh lingkungan pengembangan bisa dijalankan dari jarak jauh seolah-olah lokal
    • Mesin lama atau thin client bisa diubah menjadi workstation penuh
    • Di marketplace VSCode ada banyak plugin yang menjadi ancaman keamanan. SSH Remote atau VS Tunnel bukan itu masalahnya
  • Mengizinkan pengeditan jarak jauh VSCode di server pengembangan terasa meresahkan. Apalagi di server produksi

    • Menggunakan VSCode Remote di server produksi itu gila
    • Fitur-fitur lainnya memang sesuai ekspektasi
  • Instance VSCode lokal menjadi thin client, sementara instance jarak jauh menangani pekerjaan berat

    • Cocok saat terhubung lewat SSH dari laptop kecil ke workstation yang kuat
    • Jika terhubung lewat SSH dari workstation kuat ke VM/VPS kecil, saya menyarankan sshfs atau pengaturan mount sistem berkas jarak jauh lainnya