Panduan Menggunakan Bitwarden untuk Mengelola Kredensial API dan SSH Key dengan Aman
Sebagai developer atau pengguna Termux yang sering bekerja dengan API dan server remote, kamu pasti punya banyak kredensial sensitif: API key untuk layanan cloud, SSH private key untuk akses server, token autentikasi, dan sebagainya. Menyimpan semua ini di file teks biasa atau hardcode di script adalah praktik yang berisiko tinggi. Bitwarden, sebagai password manager open-source, ternyata bisa jadi solusi praktis untuk mengelola kredensial teknis ini dengan aman—bukan cuma password login website. Artikel ini akan memandu kamu menggunakan Bitwarden CLI di Termux atau Linux untuk menyimpan dan mengambil kredensial API serta SSH key secara terstruktur dan aman.
Mengapa Bitwarden untuk Kredensial Teknis?
Bitwarden punya fitur Secure Notes dan Custom Fields yang memungkinkan kamu menyimpan teks panjang seperti private key atau JSON credential. Dengan Bitwarden CLI, kamu bisa mengintegrasikan akses kredensial langsung ke dalam workflow automation tanpa perlu menyimpan plaintext di direktori home. Ini sangat berguna saat kamu bekerja di multiple device atau perlu berbagi akses dengan tim secara terkontrol. Plus, Bitwarden mengenkripsi semua data dengan end-to-end encryption, jadi bahkan server Bitwarden sendiri tidak bisa membaca isi vault-mu.
Persiapan Awal
Pertama, pastikan kamu sudah punya akun Bitwarden. Kalau belum, daftar di bitwarden.com—versi gratis sudah cukup untuk kebutuhan personal. Untuk pengguna Termux, install Bitwarden CLI dengan npm:
pkg install nodejs-lts
npm install -g @bitwarden/cli
Setelah terinstall, login dengan command bw login dan masukkan email serta master password-mu. Bitwarden CLI akan menyimpan session token yang perlu kamu unlock setiap kali memulai sesi baru. Simpan session key dengan command export BW_SESSION="token_yang_muncul" agar tidak perlu login ulang dalam satu sesi terminal.
Langkah Praktis Menyimpan Kredensial
- Buat Item Baru untuk API Key: Gunakan command
bw get template item | jq '.type = 2 | .secureNote.type = 0 | .name = "GitHub API Token"' | bw encode | bw create item. Tipe 2 adalah Secure Note. Setelah item dibuat, edit denganbw edit item <item-id>dan tambahkan field custom untuk menyimpan token. Atau lebih praktis, gunakan web vault untuk menambahkan field "api_token" di bagian Custom Fields. - Simpan SSH Private Key: Buat Secure Note baru dengan nama seperti "SSH Key - Production Server". Di bagian Notes, paste seluruh isi private key-mu (dari
-----BEGIN OPENSSH PRIVATE KEY-----sampai-----END OPENSSH PRIVATE KEY-----). Tambahkan Custom Field untuk menyimpan informasi tambahan seperti hostname, username, dan port. - Organisasi dengan Folder: Buat folder untuk mengelompokkan kredensial, misalnya "API Keys", "SSH Keys", "Database Credentials". Command:
bw get template folder | jq '.name = "API Keys"' | bw encode | bw create folder. Lalu pindahkan item ke folder denganbw edit item <item-id>dan set folderId. - Ambil Kredensial dari Script: Untuk menggunakan API key dalam script, gunakan command seperti
bw get item "GitHub API Token" | jq -r '.fields[] | select(.name=="api_token") | .value'. Ini akan mengeluarkan hanya nilai token tanpa metadata lain. Kamu bisa assign ke variable:API_KEY=$(bw get item "GitHub API Token" | jq -r '.fields[0].value'). - SSH Key Workflow: Untuk SSH key, extract private key ke file temporary dengan permission ketat:
bw get item "SSH Key - Production" | jq -r '.notes' > /tmp/temp_key && chmod 600 /tmp/temp_key && ssh -i /tmp/temp_key user@server && rm /tmp/temp_key. Ini memastikan key tidak tersimpan permanen di disk.
Kesalahan yang Sering Terjadi
- Lupa Unlock Vault: Setelah login, vault masih terkunci. Kamu harus jalankan
bw unlockdan export session token setiap kali membuka terminal baru. Tanpa ini, semua command akan gagal dengan error "Vault is locked". - Permission File SSH Key Terlalu Terbuka: Kalau kamu extract SSH key ke file dan lupa set
chmod 600, SSH akan menolak menggunakan key tersebut dengan pesan "permissions are too open". Selalu set permission ketat untuk private key. - Hardcode Session Token di Script: Jangan pernah simpan
BW_SESSIONtoken di dalam script yang di-commit ke git. Token ini sama sensitifnya dengan master password. Gunakan environment variable atau prompt user untuk unlock di awal script. - Tidak Sync Setelah Edit: Kalau kamu edit item lewat web vault atau device lain, jangan lupa jalankan
bw syncdi CLI agar perubahan tersinkronisasi. CLI tidak auto-sync secara default. - Menyimpan Password Master di File: Beberapa orang tergoda untuk menyimpan master password di file agar bisa auto-login. Ini menghilangkan seluruh tujuan enkripsi Bitwarden. Gunakan biometric unlock di mobile atau ketik manual di CLI.
Tips Aman dan Etis
Gunakan Bitwarden untuk memperkuat keamanan workflow-mu, bukan untuk menyimpan kredensial yang didapat dengan cara tidak sah. Jangan pernah menyimpan API key atau SSH key yang bukan milikmu atau didapat dari credential stuffing. Untuk tim, pertimbangkan Bitwarden Organizations agar bisa share kredensial dengan access control yang jelas—jangan share master password.
Aktifkan two-factor authentication (2FA) di akun Bitwarden-mu. Ini menambah layer proteksi kalau master password-mu bocor. Gunakan Authy atau hardware key seperti YubiKey untuk 2FA yang lebih aman dari SMS.
Rotasi kredensial secara berkala. Meskipun tersimpan aman di Bitwarden, API key dan SSH key tetap harus diganti setiap beberapa bulan atau setelah ada perubahan akses tim. Set reminder di calendar untuk audit kredensial.
Jangan expose Bitwarden CLI output di log atau screenshot. Command seperti bw list items akan menampilkan semua data termasuk nilai field. Kalau perlu share command untuk tutorial, gunakan dummy data atau redact bagian sensitif.
Workflow Automation yang Aman
Untuk automation script yang berjalan tanpa interaksi user, kamu bisa menggunakan Bitwarden CLI dengan session token yang di-set sebagai environment variable di cron job atau systemd service. Tapi pastikan environment variable tersebut tidak ter-expose ke proses lain. Di Termux, kamu bisa buat script wrapper yang unlock vault, jalankan task, lalu lock kembali:
#!/bin/bash
export BW_SESSION=$(bw unlock --raw)
API_KEY=$(bw get item "My API" | jq -r '.fields[0].value')
curl -H "Authorization: Bearer $API_KEY" https://api.example.com/data
bw lock
Script ini memastikan vault hanya terbuka selama eksekusi dan langsung dikunci setelah selesai. Simpan script dengan permission 700 agar hanya owner yang bisa execute.
Kesimpulan
Bitwarden CLI adalah tool yang powerful untuk mengelola kredensial teknis dengan aman, terutama buat developer yang bekerja di environment command-line seperti Termux. Dengan menyimpan API key dan SSH key di Bitwarden, kamu menghindari risiko credential leak dari file config yang ter-commit ke git atau tersimpan di plaintext. Workflow yang dijelaskan di artikel ini sudah saya praktikkan untuk mengelola puluhan API key dan SSH key untuk berbagai project, dan signifikan mengurangi anxiety soal keamanan kredensial. Kuncinya adalah disiplin dalam unlock/lock vault, tidak hardcode session token, dan rutin audit kredensial yang tersimpan. Selamat mencoba, dan jaga kredensial-mu dengan baik.