8 poin oleh GN⁺ 2025-09-15 | 2 komentar | Bagikan ke WhatsApp
  • Pass adalah alat pengelola kata sandi sederhana yang mengikuti filosofi Unix, menyimpan setiap kata sandi ke dalam file yang dienkripsi dengan GPG
  • Kata sandi dapat dikelola secara sistematis dengan struktur folder, dan alat baris perintah memudahkan penambahan, pengeditan, pembuatan, penayangan, dan penghapusan
  • Melalui integrasi Git, riwayat perubahan kata sandi dapat dilacak dan disinkronkan, sehingga berguna juga di beberapa komputer dan lingkungan tim
  • Memiliki kebebasan pengguna yang tinggi, sehingga struktur file maupun format data penyimpanan dapat disusun bebas sesuai kebutuhan pengguna
  • Dengan ekstensibilitas dan kompatibilitas tinggi, berbagai fitur ekstensi serta klien/GUI lintas platform dikembangkan dan didistribusikan secara aktif

Pengenalan Pass

  • Pengelolaan kata sandi harus sederhana dan mengikuti filosofi Unix
  • Pass menyimpan setiap kata sandi dalam bentuk file yang dienkripsi dengan GPG, dan nama file menggunakan nama situs web atau resource yang membutuhkan kata sandi tersebut
  • File terenkripsi ini dapat ditata dalam struktur folder sesuai keinginan. Dengan perintah manajemen file biasa, proses salin, pindah, dan hapus antar komputer juga dapat dilakukan dengan mudah
  • Pass menyediakan perintah yang dikhususkan untuk menambah, mengedit, membuat, dan melihat tiap file kata sandi, dan secara default kata sandi disimpan di bawah ~/.password-store
  • Diimplementasikan hanya dengan skrip shell sederhana
  • Untuk menyalin kata sandi (salin ke clipboard) dan mencatat riwayat perubahan kata sandi, Pass memanfaatkan Git
  • Dapat diedit juga dengan perintah shell dasar, serta mendukung autocompletion di berbagai shell seperti Zsh, Fish, dan Bash
  • Berbagai fitur ekstensi dan klien/GUI untuk platform lain dikembangkan secara aktif oleh komunitas

Cara menggunakan password store

  • Dapat melihat seluruh daftar kata sandi yang tersimpan
  • Mendukung penayangan kata sandi tertentu dan penyalinan ke clipboard (dengan pembersihan otomatis)
  • Memungkinkan input kata sandi dan autentikasi yang nyaman melalui gpg-agent
  • Dapat menambahkan kata sandi baru, menyimpan file multiline yang sudah ada (-m option), dan mengedit file secara langsung melalui editor teks default
  • Menyediakan fitur pembuatan kata sandi acak menggunakan /dev/urandom (dapat menyertakan/mengecualikan simbol sesuai opsi, serta mendukung salin langsung ke clipboard)
  • Saat kata sandi dihapus, file terenkripsi juga dihapus dari sistem file
  • Setelah diinisialisasi sebagai repositori Git, setiap perubahan kata sandi akan menghasilkan commit dan dapat disinkronkan dengan pass git push/pull
  • Fitur tambahan dan cara penggunaan rinci dapat dilihat di man page

Cara konfigurasi dasar

  • Saat menginisialisasi password store, cukup masukkan kunci GPG untuk mulai dengan mudah (jika beberapa kunci GPG ditentukan, cocok untuk lingkungan tim)
  • Kunci GPG terpisah dapat ditetapkan untuk folder tertentu (-p option)
  • Dapat juga diinisialisasi sebagai repositori Git (remote dapat ditentukan secara terpisah)
  • Semua operasi penambahan, penghapusan, dan pengeditan kata sandi dikelola sebagai commit Git
  • Contoh inisialisasi yang lebih luas dapat dilihat di man page

Cara instalasi

  • Debian/Ubuntu: apt-get install pass
  • Fedora/RHEL: yum install pass
  • Mendukung berbagai platform seperti openSUSE/Gentoo/Arch/Macintosh/FreeBSD
  • Tersedia melalui tarball dan clone langsung dari repositori Git (semua rilis menyediakan signed tag)

Organisasi data dan fleksibilitas

  • Pass memungkinkan pengguna mengatur data secara bebas sesuai kebutuhan (tanpa memaksakan skema maupun format)
  • Dapat memilih berbagai pendekatan seperti penyimpanan multiline, pemisahan data berdasarkan nama file, atau struktur folder
  • Contoh: untuk Amazon/bookreader, baris pertama dapat berisi kata sandi, lalu informasi tambahan seperti URL, nama pengguna, dan pertanyaan rahasia dapat disimpan setelahnya
  • Jika perlu, tiap informasi juga bisa dikelola sebagai file terpisah (misalnya: password, secretquestion1, dan seterusnya)
  • Karena opsi salin ke clipboard hanya menyalin baris pertama, penggunaan nyata dan penyimpanan informasi tambahan dapat dijalankan secara efisien bersamaan

Fitur ekstensi

  • Fitur ekstensi (extensions) didukung untuk memenuhi beragam kebutuhan pengguna
  • Dipasang di folder sistem atau folder pengguna, dan status aktivasi ditentukan melalui variabel lingkungan
  • Komunitas secara aktif mengembangkan dan menyediakan beragam fitur ekstensi

Klien kompatibel

  • Klien/GUI untuk berbagai platform dikembangkan dan didistribusikan oleh komunitas
  • Pengguna dapat memilih klien yang sesuai dengan sistem operasi atau lingkungan penggunaan mereka

Migrasi dari pengelola kata sandi lain

  • Saat memindahkan data dari pengelola kata sandi lain, tersedia berbagai skrip konversi dan metode
  • Pengguna dapat memilih organisasi data yang paling optimal dengan cara yang paling sesuai bagi mereka

Pembuat dan lisensi

  • Dikembangkan oleh Jason A. Donenfeld (zx2c4.com)
  • Dapat digunakan dan dimodifikasi secara bebas di bawah lisensi GPLv2+

2 komentar

 
ndrgrd 2025-09-15

Sebenarnya ada banyak alat yang hanya sekadar menyimpan, tetapi yang penting adalah integrasi seperti pengisian otomatis.

 
GN⁺ 2025-09-15
Komentar Hacker News
  • Ada banyak pendapat positif tentang pass di sini, tetapi juga ada beberapa kekurangan utama yang jelas

    • Karena datanya tidak terstruktur, secara umum cukup merepotkan untuk ditangani

    • Misalnya, saat ingin memakai username dan password di dalam skrip, setiap kali harus menulis kode parsing sendiri, jadi tidak praktis

    • Jika membuat password baru dengan pass generate, semua nilai yang ada akan tertimpa

    • Artinya, jika password dan jawaban secret question ada bersama, lalu hanya password yang dibuat ulang, jawabannya akan hilang

    • Sangat sulit memeriksa riwayat

    • Karena semua isi terenkripsi, bahkan git diff tidak memberi informasi yang berguna, dan memulihkan riwayat atau kesalahan lewat alat command line juga tidak nyaman

    • Namanya terlalu umum sehingga sulit dicari

    • Belakangan ini sedang mengembangkan alat serupa bernama passworth (juga mempertimbangkan penggunaan container/sandbox) https://github.com/andrewbaxter/passworth

    • Soal sulitnya memeriksa riwayat, sebenarnya pass mendukung pengaturan file .gitattributes agar git bisa mengonversi file gpg menjadi teks untuk melihat diff

      • Contohnya menambahkan *.gpg diff=gpg ke ~/.password-store/.gitattributes
      • Lalu di .git/config, atur [diff "gpg"] dengan textconv = gpg2 -d ...
      • Dengan begitu, isi terenkripsi pun bisa di-diff dengan mudah
    • Membagikan masalah tambahan yang dialami saat memakai pass

      • Prosedur penggunaan penting tidak terdokumentasi (mis. saat memindahkan repositori pass ke komputer lain, tidak jelas apa saja yang harus disalin)
      • Di lingkungan yang tidak dipaketkan, misalnya saat ingin memasangnya di NAS headless, hal ini sangat sulit karena masalah seperti cross-compile gpg
      • pass pada dasarnya hanya antarmuka yang sangat tipis di atas gpg, jadi semua kekurangan gpg ikut terbawa (terutama masalah terkait gpg-agent)
      • Banyak organisasi sekarang mencoba beralih dari GnuPG ke alat enkripsi yang lebih sederhana seperti age https://github.com/FiloSottile/age
      • Kombinasi pass dan Android terasa kurang bagus; paket resminya tidak dipelihara, fork-nya tidak ada di F-Droid, dan UI-nya juga tidak nyaman
      • Secara umum tetap masih memakai pass, tetapi belum banyak solusi umum yang lebih baik
      • Ada juga cara mengganti gpg dengan age lewat FiloSottile/passage, tetapi tidak ada dukungan Android
      • gopass tampak lebih baik (berjalan di semua unix, kompatibel dengan pass, menyediakan plugin age, https://www.gopass.pw), tetapi tetap saja tidak ada packaging Android
    • Masalah struktur data diatasi dengan struktur folder

      • Untuk tiap situs, file username, password, dan email dikelola terpisah
      • Kadang juga ditambahkan file notes (catatan tak terstruktur), atau dalam kasus khusus file json (untuk dibaca mesin)
      • Agak disayangkan metadata tidak terenkripsi, tetapi secara umum ini solusi yang memuaskan
    • Saya justru merasa sifat data yang tidak terstruktur adalah keunggulan besar

      • Dalam praktiknya, kalau ditulis dengan format seperti Username: xxx, plugin browser seperti browserpass bisa mengenalinya dan mengisi otomatis
    • Membagikan pendapat soal isu struktur data dan riwayat per fitur

      • Fakta bahwa tiap orang bisa memakai konvensinya sendiri dianggap sebagai kelebihan
      • Walaupun pass generate menimpa semua nilai, tetap bisa dikelola sebagai file terpisah seperti site/pass, site/secret-question
      • Cara memanfaatkan tree direktori itu sendiri cukup bagus
      • Sulit memang melacak password yang dihasilkan lewat git diff, tetapi yang penting sebenarnya adalah kapan terakhir berubah (bisa dicek dengan git log), dan bila perlu bisa dipulihkan dengan git checkout -d
      • Kalau mengetik $ pass di terminal, paket terkait akan muncul, jadi masalah pencarian juga tidak terlalu serius
  • Password manager browser + passkey jauh lebih praktis, tetapi vault pass juga masih layak dipakai untuk menyimpan recovery code dan API key

    • Hal yang paling terasa abu-abu saat memakai pass adalah threat model-nya tidak jelas

    • Jika GPG agent di-cache, skrip apa pun (npm postinstall dan sejenisnya) bisa menelusuri semua kredensial dengan pass ls

    • Kalau begitu, rasanya tidak jauh beda dengan menyimpan semuanya dalam satu file ~/passwords.txt

    • Tetapi kalau cache tidak dipakai, harus menderita memasukkan passphrase GPG yang panjang setiap saat

    • Pernah juga mencoba memakai YubiKey untuk unlock on-demand, tetapi integrasinya buruk dan cukup merepotkan saat harus sering memasukkan password

    • Karena itu pindah ke Bitwarden

    • Dalam kasus saya, yubi dibiarkan tetap terpasang

      • Tetap perlu sentuhan fisik, jadi kalau ruang saya aman, ini secara praktis adalah autentikasi faktor kedua
      • Tidak seperti fido2, dengan OpenPGP PIN cukup dimasukkan sekali dan selama perangkat tetap terpasang akan terus dalam keadaan terbuka
      • Sebagai gantinya, tiap password tetap perlu disentuh untuk didekripsi, jadi bagi saya ini sempurna sekaligus nyaman
      • Di mobile pun kombinasi openkeychain dan password store bekerja dengan baik
      • Meski keduanya tidak lagi dikelola, saya merasa cukup percaya pada enkripsi hardware yubi
    • Semua password manager pada dasarnya berisiko mengekspos seluruh password jika penyimpanan sedang tidak terkunci, karena master password bisa tertinggal di RAM atau cache

      • Saat tidak dipakai, sebaiknya dikunci agar aman
      • Jika terintegrasi dengan browser seperti Bitwarden, attack vector-nya juga lebih luas (server jarak jauh, extension, dll.)
      • Belakangan hampir semua password manager berbasis browser mengalami kerentanan yang memungkinkan penyerang jarak jauh mengirim password ke browser korban
      • Saya memang memakai Bitwarden, tetapi kredensial yang benar-benar penting tetap diperlakukan terpisah
    • Jika ada port USB kosong, Nano key juga bisa dibiarkan terpasang

      • Kalaupun malware berhasil mencuri PIN yubi, untuk mencuri semua password penyerang tetap harus membujuk saya menekan perangkat itu seribu kali
    • Saya menyimpan password di sqlite DB dalam partisi file terenkripsi

      • Begitu skrip membaca password, partisinya langsung ditutup lagi
      • Atau bisa juga tiap password disimpan sebagai file terpisah yang dienkripsi sendiri
      • Kalau perlu, file password didekripsi lalu gpg agent dibersihkan
    • YubiKey bisa diatur agar penggunaan kunci GPG memerlukan persetujuan lewat PIN atau sentuhan

      • Masalah terbesar pass adalah kompatibilitasnya dengan yubikey di iOS kurang bagus
  • Saya sangat menyukainya dan memakainya setiap hari

    • Khususnya kombinasi kunci OpenPGP dan yubi sangat mengesankan
    • Karena tiap password harus di-unlock satu per satu, meskipun penyerang sepenuhnya menguasai komputer saya, yang terekspos hanya yang benar-benar saya sentuh secara fisik
    • Berbeda dari keepass atau bitwarden yang setelah sekali unlock semuanya terbuka, jadi risiko seluruh database terekspos lebih kecil
  • Bagi orang yang suka CLI, pass memang menarik, tetapi untuk pengguna biasa, pendekatan Desktop dengan KeepassXC, Android dengan KeepassDX, dan akses jarak jauh lewat Wireguard tampaknya lebih cocok

    • Salah satu fitur berguna di keepass yang jarang dibicarakan adalah bisa membuka dan mencari di beberapa vault sekaligus

      • Kebanyakan password manager dirancang dengan asumsi satu vault tunggal, sehingga pada akhirnya semua password dianggap membutuhkan tingkat keamanan yang sama
      • Dalam kasus saya, sekitar 70% adalah situs yang tidak penting, tetapi tetap harus repot memasukkan master password panjang setiap kali login
      • Dengan keepass, 70% data yang tidak penting ini bisa dimasukkan ke vault terpisah dan diberi password pendek, jadi jauh lebih praktis
    • Saya rasa standar soal siapa yang disebut “normie” itu relatif

      • Saya sendiri cukup memakai 1Password dan percaya pada hasilnya
    • Jangan lupakan keepassxc.cli

      • Sangat berguna untuk memasukkan atau mengambil secret secara terprogram
      • Dulu saat membuat bundle secrets terenkripsi, saya lebih dulu mencoba GNU pass, tetapi akhirnya menyerah karena pengelolaan gnupg rumit dan nilainya disimpan di home directory
      • pass memang unggul dalam ubiquity, tetapi tidak cocok dengan workflow copy-one-file, jadi saya kembali ke keepassxc
    • Salah satu contoh penggunaan saya yang tidak bisa diselesaikan dengan keepass adalah membuat password di dua komputer yang terpisah lalu menggabungkannya nanti

    • Saya juga ingin mencoba KeepassXC, tetapi berbagi kredensial dengan pasangan tidak mudah

      • Walaupun memakai vault khusus, saat berbagi informasi yang sudah ada tetap perlu copy/paste manual
      • Karena itu sekarang saya menetap di Vaultwarden, dan ternyata cukup stabil digunakan
  • pass adalah solusi yang menyenangkan saat dipakai sendiri, tetapi perlu hati-hati jika dibagikan ke banyak orang

    • Jika dipakai sebagai password manager perusahaan, tidak ada cara untuk mengetahui siapa melihat secret apa dan kapan, sehingga setiap ada perubahan personel semua password harus diganti

    • Jika seseorang baru memerlukan akses, tidak ada cara standar untuk mengenkripsi ulang file secara selektif, jadi harus membuatnya sendiri

    • Memang disimpan dengan git, tetapi pesan commit dibuat otomatis sehingga manfaat nyatanya tak jauh beda dari dropbox

    • Kalau tak sengaja push isi yang salah lalu ingin membatalkannya, harus menulis ulang git history, dan itu bisa merusak perangkat pengguna lain

    • Kesederhanaan dan sifat yang bisa diutak-atik langsung memang kelebihan, tetapi justru kesederhanaan itu juga jebakannya

    • Seperti pendekatan hash(site_name+main_password), kelihatannya indah tetapi dalam praktik muncul banyak masalah

    • Bahkan di lingkungan bisnis pun tetap dibutuhkan fitur seperti enkripsi end-to-end dan verifikasi fingerprint antar pengguna; Bitwarden tampaknya paling mendekati, tetapi kalau ada contoh yang lebih baik saya ingin rekomendasi

    • Di pass juga bisa menerapkan kunci berbeda (atau beberapa kunci) per direktori, sehingga akses bisa dirinci per grup atau per orang

      • Contoh: folder admins memakai kunci admin, folder techs bisa diakses oleh kunci admin dan tech
      • Kunci pribadi per pegawai juga bisa ditetapkan untuk mengelola siapa saja yang dapat mengakses situs tertentu
      • Cakupan akses per pegawai bisa dikendalikan dengan git submodule
      • Lewat riwayat git juga bisa dilacak kapan dan kepada siapa password tertentu dibuka
    • Di perusahaan saya, kami memakai 1Password

      • Mendukung berbagai fitur seperti shared vault per grup, service account, perintah op run lewat file .env, dan integrasi CI
    • Saya hanya pernah mengevaluasinya, belum punya pengalaman nyata, tetapi passbolt tampak sebagai opsi yang bagus untuk alat berbagi password tim https://www.passbolt.com

      • Dengan pendekatan kunci publik, password plaintext hanya terlihat di lokal masing-masing pengguna, dan password yang dibagikan dienkripsi ulang dengan kunci publik tiap pengguna
    • Di perusahaan kami, alat yang kurang dikenal bernama "pa" dipakai dengan baik https://git.j3s.sh/pa

      • Berbasis age, dan bisa mengenkripsi dengan banyak kunci
    • Sepertinya juga memungkinkan membuat solusi yang bagus berbasis FOKS https://foks.pub

  • Baru-baru ini pindah dari pass ke Bitwarden dan Vaultwarden

    • Di lingkungan yang memasang aplikasi GUI berbasis flatpak, integrasi antara ekstensi Firefox dan pass tidak berjalan, jadi terasa tidak nyaman

    • Sebagai workaround, saya memakai pass -c <path> di jendela run untuk menyalin password lalu menempelkannya ke browser, tetapi itu bukan pengalaman yang ideal

    • Fakta bahwa aplikasi Android resminya sudah diarsipkan juga jadi salah satu alasan, dan meski ada fork, belum jelas seberapa lama akan dipelihara https://github.com/android-password-store/Android-Password-Store/discussions/3260

    • Sekarang saya self-host vaultwarden dan memakainya lewat beberapa klien bitwarden

    • Berbagi pengalaman pindah dari pass ke KeePassXC

      • Saya juga menyimpan ratusan secrets di pass
      • Saya beralih karena sinkronisasi antarperangkat lebih mudah, dan menyimpan hanya password penting di ponsel/laptop punya batasannya
      • KeePassXC mudah disinkronkan karena hanya satu file, dan ada dua aplikasi Android yang sama-sama didukung dengan baik
      • Memindahkan data secara manual memakan waktu sekitar 3 jam, tetapi sekalian jadi kesempatan merapikan data
      • Password manager adalah semacam aplikasi catatan yang jarang dipakai, jadi memindahkan satu file lewat jaringan sudah cukup untuk menyinkronkan tiga perangkat
    • Ada juga alat bernama passmenu

      • Dipanggil lewat key binding, lalu dari menu bisa memilih password yang diinginkan dengan autocomplete dan menyalinnya ke clipboard
      • Nyaman karena tidak perlu mengetik pass dan path di command prompt
    • Saya tidak tahu aplikasi Android untuk pass sudah dihentikan

      • Setelah melihat fork-nya, rasanya melegakan karena pengembangannya masih aktif
      • Saya penasaran kenapa proyek resmi dan fork tidak diserahkan begitu saja (mungkin karena isu praktik keamanan)
      • Saya sendiri lebih suka menyalin langsung dengan pass -c dari prompt daripada memakai plugin
      • Plugin punya masalah kepercayaan, misalnya kunci gpg bisa terbuka saat browser dimulai, atau pembuat plugin sengaja membocorkan password saya
    • Saya penasaran dengan pengalaman penggunaan offline di vaultwarden

      • Kadang saya benar-benar perlu melihat atau memperbarui info autentikasi secara offline saat koneksi jaringan tidak stabil
      • Saya sendiri belum mencoba sejauh mana vaultwarden mendukung hal itu
  • Ada juga ekstensi pass-otp https://github.com/tadfisher/pass-otp

    • Aplikasi Android untuk pass juga cukup bagus https://play.google.com/store/apps/details?id=dev.msfjarvis.aps

    • Berjalan juga di termux

    • Aplikasi Android Password Store diarsipkan tahun lalu, lalu di-fork oleh agrahn dan banyak ditingkatkan

    • Alternatif pribadi saya adalah menaruh skrip kecil di ~/bin dan memakai pass bersama oathtool untuk membuat OTP

      • Kuncinya diambil lewat pass lalu kode totp dibuat dengan oathtool
    • Beberapa aplikasi Android lama untuk pass sekarang sudah tidak bisa dipasang lagi di perangkat saya

      • Integrasi GPG merepotkan, jadi pada praktiknya memang tidak berjalan baik
  • Jika memakai age alih-alih GPG, ada alat passage yang membantu https://github.com/FiloSottile/passage

    • Ada beberapa password manager mirip pass yang memakai age
  • Akhir-akhir ini saya sudah hampir 10 tahun memakai pendekatan lain

    • Semua metadata password disimpan dalam JSON plaintext; tiap entri mencatat user, versi, dan aturan password (panjang, jenis karakter, dll.)

    • Password aslinya tidak disimpan, melainkan "dihasilkan secara deterministik" dari passphrase + hash metadata

    • Bahkan hanya dengan mengubah nomor versi, password yang benar-benar baru akan dibuat, dan riwayat pun mudah dicek cukup lewat perubahan "versi"

    • Kekurangannya, cara ini hampir tidak bisa dibagikan (orang lain harus tahu passphrase yang saya pakai)

    • Saat perlu berbagi, saya sempat mempertimbangkan mode yang membuat ciphertext lewat generator password lalu menyimpannya terpisah sebagai metadata, tetapi ternyata hampir tidak pernah dibutuhkan

    • Alasan pendekatan generator password cukup baik adalah karena kekhawatiran kehilangan vault jadi berkurang

      • Selama ada hash function umum, password bisa dibuat di lingkungan mana pun
      • Masalahnya, metadata (daftar situs, aturan, dll.) tetap terbuka dan menimbulkan kekhawatiran keamanan
      • Rasanya secara esensial tidak jauh berbeda dari pendekatan vault
    • Belakangan saya mengetahui pendekatan ini lewat SECUSO password generator https://secuso.aifb.kit.edu/english/105.php

      • Saya memakai pembuatan password deterministik
      • Kumpulan aplikasi open source dari SECUSO juga cukup bagus
    • Jika passphrase dibagikan, permukaan eksposurnya membesar, jadi sekali bocor banyak kredensial bisa langsung ikut berisiko

  • Saya pengguna pass selama lebih dari 8 tahun, menyimpan 1300 password

    • Saya sangat puas karena sinkronisasi antarperangkat dengan git berjalan sangat baik

    • "Bagaimana bisa sampai 1300 password sebanyak itu?"

      • Saya sendiri belum pernah benar-benar menghitungnya, jadi sebenarnya juga tidak terlalu tahu ada sebanyak itu