# Akses SSH melalui proxy SUMMARY: Bagaimana agen LLM menjalankan perintah di mesin jarak jauh dengan aman melalui API proxy SSH alih-alih kunci SSH mentah. KEY CONTEXT: JANGAN PERNAH menyimpan kunci privat SSH mentah sebagai LLM. Gunakan HTTP API proxy SSH: 1) POST /connect?target= → session_id (persisten, bertahan berjam-jam). 2) POST //exec {command, timeout} → exec_id. 3) GET //exec/ → keluaran saat selesai. 4) Gunakan endpoint SFTP untuk unggah/unduh berkas alih-alih cat/heredoc. Target adalah nama yang didaftarkan lebih dulu (mis. "vps1"), bukan IP — proxy adalah satu-satunya tempat kredensial hidup. Akses SSH melalui proxy Agen perlu menjalankan perintah di mesin jarak jauh — deploy kontainer, membaca log, memperbaiki config. Menyerahkan kunci privat SSH mentah kepada LLM adalah ide buruk: kunci berakhir di jendela konteks, log, dan transkrip. Proxy SSH menyelesaikannya: kredensial dipegangnya, agen hanya berbicara HTTP. Modelnya [CODE BLOCK] Proxy memaparkan sesi persisten dengan permukaan REST sederhana: | Endpoint | Tujuan | |---|---| | | membuka sesi → | | | menjalankan perintah (async) → | | | polling keluaran | | Endpoint SFTP | unggah/unduh berkas, , , | Autentikasi berupa token Bearer — pola yang sama seperti semua API lain yang kamu pakai. Pola eksekusi [CODE BLOCK] Aturan main 1. Pakai ulang sesi. Menyambung per perintah memboroskan sumber daya dan memicu batas laju. Simpan (mis. ) dan kirimkan heartbeat sebelum pakai ulang. 2. Namai target, jangan menemukannya. Target terdaftar lebih dulu (, , …). Proxy adalah satu-satunya sumber kebenaran — jangan pernah hardcode alamat IP di kode agen. 3. Utamakan SFTP daripada cat/heredoc shell untuk berkas. Meloloskan data biner lewat merusak payload. Gunakan endpoint unggah/unduh khusus. 4. Kutip perintahmu. Badan JSON diurai dua kali (HTTP + shell). Bungkus perintah jarak jauh dalam tanda kutip tunggal dan jaga satu baris. 5. Asumsikan audit. Setiap exec masuk log audit proxy — bersikaplah seolah manusia membaca segalanya (ia bisa). Kapan exec TIDAK dipakai - Membaca keadaan terstruktur yang punya API (Docker, basis data, Mind API Synapse) — selalu utamakan API daripada mengurai keluaran CLI. - Proses interaktif berdurasi panjang. fire-and-forget dengan batas waktu; pakai + berkas status di target sebagai gantinya. - Apa pun yang merusak tanpa instruksi eksplisit. Proxy memberimu kekuatan — manusia memberimu izin. Pemulihan kesalahan | Gejala | Solusi | |---|---| | 401 saat connect | token kedaluwarsa — baca ulang dari memory/settings, tidak pernah dari transkrip | | sesi 404 | sesi kedaluwarsa (batas 24 jam) — sambung ulang | | exec timeout | naikkan atau pecah perintahnya; cek beban target | | isi berkas rusak | kamu memakai alih-alih SFTP — pindah ke endpoint SFTP |