Salasananhallinnasta on tullut viime vuosina yhä useamman kehittäjän ja ylläpitäjän arkipäivää, mutta pilvipohjaiset holvit eivät sovi kaikille. Jos työskentelet paljon päätteessä, käytät SSH-yhteyksiä tai haluat pitää salasanavaraston täysin omassa hallinnassa, komentorivin pass-työkalu tarjoaa vaihtoehdon, joka nojaa kahteen jo vuosikymmeniä testattuun teknologiaan: GPG-salaukseen ja Git-versionhallintaan. Tässä oppaassa käydään läpi koko prosessi tyhjästä toimivaan, synkronoituun salasanavarastoon 12 vaiheessa.

Pass ei ole uusi työkalu, mutta sen ekosysteemi on kehittynyt tasaisesti. Virallinen passwordstore.org-sivusto listaa nykyiseksi vakaaksi versioksi 1.7.4, ja taustalla toimiva GnuPG-salausohjelmisto on juuri päivittynyt versioon 2.5.24, joka julkaistiin 23. syyskuuta 2026. Molemmat ovat kypsiä, hyvin dokumentoituja projekteja, mutta juuri siksi niiden asennus ja konfigurointi kannattaa tehdä huolella. Käymme läpi paitsi perusasennuksen myös Git-synkronoinnin, kaksivaiheisen todennuksen, selainintegraation ja avainten kierrätyksen, sekä kokoamme lopuksi täyden esimerkkiprojektin, jota voit käyttää suoraan omassa ympäristössäsi.

Moni kehittäjä ja ylläpitäjä on jo tottunut pitämään koko työympäristönsä versionhallinnassa: dotfiles, shell-konfiguraatiot, Ansible-playbookit ja infrastruktuurin määritykset asuvat kaikki Git-repositoriossa. Pass sopii saumattomasti tähän ajattelutapaan, koska salasanavarasto käyttäytyy täsmälleen kuten mikä tahansa muukin koodiprojekti: sitä voi klonata uudelle koneelle yhdellä komennolla, sen historiaa voi selata git log:lla, ja sen voi palauttaa mihin tahansa aiempaan tilaan tarvittaessa. Tämä eroaa selvästi perinteisestä “asenna sovellus ja kirjaudu tilillesi sisään” -mallista, jota suurin osa kaupallisista salasananhallinnoista käyttää.

Tämän oppaan lopussa sinulla on toimiva ympäristö, jossa yksi GPG-avain ja yksi Git-repositorio kattavat koko henkilökohtaisen tai tiimin salasanahallinnan. Käymme läpi asennuksen alusta loppuun, käytännön päivittäisen työnkulun, synkronoinnin usean laitteen välillä, kaksivaiheisen todennuksen lisäämisen, migraation vanhasta järjestelmästä, sekä yleisimmät sudut ja niiden korjaukset, jotta et joudu selvittämään niitä yrityksen ja erehdyksen kautta.

Kenelle pass sopii, ja kenelle ei

Pass ei ole kaikille sopiva ratkaisu, ja se kannattaa tunnustaa heti alussa. Työkalu palvelee parhaiten käyttäjiä, jotka viettävät suuren osan työpäivästään päätteessä: taustajärjestelmäkehittäjiä, SRE- ja DevOps-tiimejä, palvelinylläpitäjiä sekä tietoturva-ammattilaisia, jotka arvostavat sitä, että jokainen komponentti (salaus, tallennus, synkronointi) on erikseen tarkastettavissa ja korvattavissa.

Jos taas etsit ratkaisua koko perheelle, ei-teknisille kollegoille tai tilanteeseen, jossa salasanoja pitää jakaa helposti usean laitteen ja käyttöjärjestelmän välillä ilman komentorivin käyttöä, graafinen vaihtoehto on todennäköisesti parempi valinta. Samoin, jos organisaatiossasi ei ole ketään, joka osaa ylläpitää GPG-avainten elinkaarta tuotannossa, komentorivipohjaisen ratkaisun käyttöönotto voi tuoda enemmän riskiä kuin hyötyä. Pienissä kehitystiimeissä pass toimii usein hyvin rinnakkain jonkin graafisen ratkaisun kanssa: tekniset infrastruktuurisalaisuudet pass:ssa, ja loppukäyttäjien henkilökohtaiset tunnukset esimerkiksi Bitwardenissa tai NordPassissa.

Käytännön esimerkkinä: konsulttitoimisto, joka hallinnoi kymmeniä asiakkaiden palvelimia SSH:n yli, hyötyy pass:sta, koska jokaisen asiakkaan tunnukset voi eristää omaan alikansioonsa omalla vastaanottajalistallaan, ja koko historia jää talteen tarkastettavaksi. Yksittäinen freelancer-suunnittelija, joka tarvitsee muutaman kymmenen tunnuksen hallintaa eri verkkopalveluihin puhelimella ja kannettavalla, säästää todennäköisesti aikaa valmiilla graafisella sovelluksella, jossa automaattinen täyttö toimii ilman lisäasetuksia.

Mikä pass on ja miten se toimii

Pass on Jason A. Donenfeldin (tunnetaan myös WireGuardin kehittäjänä) luoma komentorivityökalu, joka tallentaa jokaisen salasanan omaan tiedostoonsa GPG-salattuna. Jokainen tiedosto on tavallinen .gpg-päätteinen tiedosto hakemistopuussa, joka oletuksena sijaitsee kansiossa ~/.password-store. Koko rakenne on samalla myös Git-repositorio, joten jokainen lisäys, muutos tai poisto voidaan versioida ja synkronoida etäpalvelimelle täsmälleen samalla tavalla kuin mikä tahansa koodiprojekti.

Nimi “pass” viittaa sekä komentoon itseensä että laajempaan filosofiaan: työkalun periaate on yhdistää olemassa olevia, jo hyvin testattuja Unix-työkaluja yhdeksi johdonmukaiseksi kokonaisuudeksi sen sijaan, että keksittäisiin kokonaan uusi salausformaatti tai tiedostorakenne. Tämä “tee yksi asia hyvin” -filosofia näkyy myös siinä, että itse pass-ohjelma on käytännössä yksi shell-skripti, jonka voi halutessaan lukea kokonaan läpi muutamassa minuutissa ja ymmärtää tarkalleen, mitä se tekee komentojesi taustalla.

Tämä arkkitehtuuri eroaa merkittävästi graafisista salasananhallinnoista kuten Bitwardenista tai NordPassista, joissa koko tietokanta on yksi salattu tiedosto tai pilvipalvelun hallinnoima holvi. Pass:ssa jokainen salasana on erillinen tiedosto, mikä tekee siitä luonnollisesti skriptattavan: voit hakea, lisätä tai poistaa yksittäisiä tunnuksia automatisoiduista prosesseista, CI/CD-putkista tai cron-ajastetuista tehtävistä ilman erillistä API-avainta tai kolmannen osapuolen palvelua.

Koska salaus hoidetaan GPG:llä, turvallisuus nojaa suoraan yksityisen avaimesi suojaukseen. Tämä on sekä etu että riski: et ole riippuvainen minkään yrityksen pilvi-infrastruktuurista tai sen mahdollisesta tietomurrosta, mutta samalla vastuu avainten varmuuskopioinnista ja hallinnasta siirtyy kokonaan sinulle itsellesi.

Käytännön tasolla tämä näkyy siinä, että pass ei koskaan lähetä mitään verkon yli oletusarvoisesti. Kun kirjoitat pass show, komento etsii tiedoston paikallisesta hakemistosta, kutsuu gpg-binaaria purkamaan sen, ja tulostaa lopputuloksen. Verkkoyhteyttä tarvitaan vain silloin, kun teet tietoisen valinnan synkronoida muutokset Git-etärepositorioon, mikä tapahtuu erillisillä pass git push– ja pass git pull-komennoilla, ei automaattisesti taustalla.

Pass vs. graafiset salasananhallinnat: vertailutaulukko

Ennen asennukseen ryhtymistä kannattaa arvioida, sopiiko komentorivipohjainen ratkaisu omaan käyttötapaan. Alla oleva taulukko vertaa pass:ia yleisimpiin graafisiin vaihtoehtoihin, joita on käsitelty aiemmin myös tällä sivustolla, kuten KeePassXC:tä ja Bitwardenia.

Ominaisuuspass (GPG + Git)KeePassXCBitwarden / NordPass
SalausmalliErillinen GPG-tiedosto per tunnusYksi salattu tietokantatiedostoSalattu holvi, palveluntarjoajan pilvessä
SynkronointiGit (oma tai mikä tahansa etärepositorio)Manuaalinen tai kolmannen osapuolen pilvikansioSisäänrakennettu pilvisynkronointi
KäyttöliittymäKomentorivi, ei graafista oletustaGraafinen työpöytäsovellusGraafinen sovellus, selainlaajennus, mobiili
SkriptattavuusNatiivisti shell-skripteistä ja cronistaCLI-lisäosan kautta rajoitetustiVaatii erillisen API:n tai CLI-työkalun
PalvelinriippuvuusEi mitään, ellei itse valitse Git-etäpalvelintaEi mitäänRiippuvainen palveluntarjoajan infrastruktuurista
Avainten hallintaKäyttäjä hallinnoi GPG-avainta itseYksi pääsalasana/avaintiedostoPalveluntarjoaja hallinnoi salausta taustalla
OppimiskäyräJyrkkä, vaatii GPG- ja Git-osaamistaMatalaHyvin matala

Taulukosta näkee selvästi, että pass ei kilpaile helppokäyttöisyydellä. Sen vahvuus on hallittavuudessa ja läpinäkyvyydessä: voit tarkistaa jokaisen tiedoston, jokaisen commitin ja jokaisen salauksen kohteen milloin tahansa tavallisilla Unix-työkaluilla, ilman että tarvitset luottamusta yhteenkään suljettuun palveluun. Tämä läpinäkyvyys on myös syy, miksi pass on suosittu erityisesti turvallisuustietoisten kehittäjien piirissä: koodi on luettavissa kokonaisuudessaan, salausalgoritmit ovat GnuPG:n yleisesti auditoituja standardikomponentteja, eikä mikään osa järjestelmästä nojaa suljettuun, tarkastamattomaan lähdekoodiin.

GnuPG:n tietoturvapäivitykset 2026: mitä sinun tulee tietää

Koska koko pass-arkkitehtuurin turvallisuus nojaa GnuPG:hen, on syytä käydä läpi, mitä taustalla on tapahtunut viimeisen vuoden aikana. Tammikuun 27. päivä 2026 GnuPG-projekti julkaisi tietoturvatiedotteen seurantatunnuksella T8044, joka koski kriittistä pino-puskurin ylivuotoa gpg-agentissa PKDECRYPT-toiminnon käsittelyssä. Haavoittuvuus vaikutti versioihin 2.5.13–2.5.16, ja sen raportoi GnuPG-projektille OpenAI Security Research 18. tammikuuta 2026. Korjaus julkaistiin nopeasti versiossa 2.5.17, eikä bugille annettu erillistä CVE-tunnistetta GnuPG:n oman tiedotteen mukaan.

Toinen, erillinen haavoittuvuus, CVE-2025-68973, koski puskurin ylikirjoitusta GnuPG:ssä ja saattoi johtaa tietovuotoon ja mahdollisesti mielivaltaisen koodin suoritukseen. Red Hat julkaisi useita korjaavia tietoturvatiedotteita (muun muassa RHSA-2026:0728 ja RHSA-2026:1468) RHEL-järjestelmille, ja Ubuntu vaati gnupg2-paketin päivitystä versioon 2.4.8-2ubuntu2.1 tai uudempaan 25.10-julkaisussa. Näiden tapausten yhteinen opetus on selvä: GnuPG on aktiivisesti ylläpidetty projekti, jossa löytyy ja korjataan haavoittuvuuksia säännöllisesti, ja pass-käyttäjän vastuulla on pitää sekä GnuPG että käyttöjärjestelmän muut paketit ajan tasalla, ei pelkästään asentaa niitä kerran ja unohtaa.

Käytännön suositus on tarkistaa gpg --version-tuloste säännöllisesti osana normaalia järjestelmäpäivitysrutiinia, tilata jakelusi tietoturvatiedotteet sähköpostiin tai RSS-syötteenä, ja välttää sellaisten testiversioiden käyttöä tuotannossa, joita ei ole vielä laajasti auditoitu. Koska pass itsessään ei tee omaa salausta vaan delegoi sen kokonaan GnuPG:lle, jokainen GnuPG:n tietoturvakorjaus koskee suoraan myös pass-varastosi turvallisuutta.

Esivaatimukset: nämä ohjelmistot ja versiot tarvitset

Ennen kuin aloitat, varmista että ympäristössäsi on seuraavat komponentit asennettuna tai asennettavissa. Pass on saatavilla lähes kaikille Unix-tyyppisille käyttöjärjestelmille, mukaan lukien Linux-jakelut, macOS ja BSD-järjestelmät. Windows-käyttäjät voivat käyttää sitä WSL:n (Windows Subsystem for Linux) kautta.

  • pass 1.7.4 tai uudempi (passwordstore.org, tarkista jakelusi paketointi komennolla apt show pass tai vastaava)
  • GnuPG 2.5.24 tai vähintään ylläpidetty 2.4.x-sarjan versio. Vältä ehdottomasti versioita 2.5.13–2.5.16, joissa oli kriittinen gpg-agent-puskurin ylivuotohaavoittuvuus (seurantatunnus T8044), korjattu versiossa 2.5.17 tammikuussa 2026
  • git mikä tahansa ylläpidetty versio synkronointia varten
  • xclip (X11) tai wl-clipboard (Wayland) leikepöytäkopiointia varten
  • pass-otp -lisäosa, valinnainen, jos haluat tallentaa TOTP-kaksivaiheisen todennuksen siemenet varastoon
  • pass-import -lisäosa, valinnainen, jos siirrät tunnuksia toisesta salasananhallinnasta
  • Selainlaajennus kuten browserpass tai passff, valinnainen selainintegraatioon

Huomaa, että Linux-jakelujen omat pakettiarkistot toimittavat usein hieman vanhempia GnuPG-versioita kuin projektin oma julkaisukanava. Tarkista aina asennuksen jälkeen ajettu gpg --version ja vertaa sitä jakelusi tietoturvatiedotteisiin ennen kuin luotat vanhaan versioon tuotannossa.

Windows Subsystem for Linuxin kautta asennus toimii käytännössä identtisesti Ubuntu-ohjeisiin verrattuna, mutta leikepöytäkopiointi vaatii ylimääräisen sillan WSL:n ja Windowsin leikepöydän välille, esimerkiksi win32yank-työkalun. macOS-käyttäjien kannattaa lisäksi huomioida, että Homebrew-asennus tuo mukanaan oman GnuPG-version, joka saattaa erota järjestelmän mukana tulevasta, joten which gpg kannattaa tarkistaa ennen ensimmäistä avaimenluontia, jotta et vahingossa luo avainta yhdellä GPG-asennuksella ja käytä sitä toisella.

Vaiheet 1-4: GPG-avain, asennus, alustus ja ensimmäinen salasana

Vaihe 1: Luo GPG-avainpari. Pass tarvitsee toimiakseen henkilökohtaisen GPG-avainparin, jolla kaikki tiedostot salataan. Jos sinulla ei vielä ole avainta, luo se interaktiivisella ohjatulla toiminnolla:

gpg --full-generate-key
# Valitse: (1) RSA and RSA (oletusvalinta)
# Avaimen pituus: 4096
# Voimassaolo: esim. 2y (kaksi vuotta, uusitaan myöhemmin)
# Anna nimi, sähköposti ja vahva salalause avaimen suojaksi

# Tarkista, että avain löytyy avainrenkaasta
gpg --list-secret-keys --keyid-format=long

Tulostuksesta löydät avaimen tunnisteen rivillä sec, esimerkiksi rsa4096/3AA5C34371567BD2. Merkitse tämä tunniste muistiin, tarvitset sitä seuraavassa vaiheessa.

RSA 4096-bittisenä on turvallinen ja laajasti yhteensopiva oletusvalinta, mutta jos ympäristösi tukee sitä, myös Curve25519-pohjainen ECC-avain (ed25519 allekirjoitukseen, cv25519 salaukseen) toimii pass:n kanssa ja on huomattavasti nopeampi salauksessa ja purussa ilman että turvallisuus kärsii. Uusimmat GnuPG-versiot tarjoavat tämän vaihtoehdon suoraan ohjatussa avaimenluonnissa valitsemalla “ECC (sign and encrypt)” RSA:n sijaan.

Vaihe 2: Asenna pass-työkalu. Asennustapa riippuu käyttöjärjestelmästä ja jakelusta:

# Debian / Ubuntu
sudo apt update && sudo apt install pass

# Fedora
sudo dnf install pass

# Arch Linux
sudo pacman -S pass

# macOS (Homebrew)
brew install pass

# pass-otp -laajennus (valinnainen, kaksivaiheiseen todennukseen)
sudo apt install pass-extension-otp   # Debian/Ubuntu
brew install pass-otp                 # macOS

Pakettien tarkat versionumerot vaihtelevat jakelun ja julkaisusyklin mukaan, joten kannattaa aina tarkistaa juuri asennettu versio komennolla pass --version heti asennuksen jälkeen. Rolling release -jakelut kuten Arch saavat uudet pass- ja GnuPG-versiot yleensä nopeimmin, kun taas pitkän tuen LTS-jakelut priorisoivat vakautta ja voivat jäädä useita kuukausia jälkeen upstream-julkaisuista.

Vaihe 3: Alusta salasanavarasto. Kun sekä GPG-avain että pass ovat asennettuina, alusta tyhjä varasto viittaamalla avaimeesi joko sähköpostiosoitteella tai avaintunnisteella:

pass init "[email protected]"
# Tuloste:
# mkdir: created directory '/home/kayttaja/.password-store'
# Password store initialized for [email protected]

Komento luo kansion ~/.password-store ja tallentaa sinne piilotiedoston .gpg-id, joka kertoo pass:lle, mitä GPG-avainta käytetään kaikkien tulevien merkintöjen salaukseen.

Vaihe 4: Lisää ensimmäinen salasana. Voit lisätä tunnuksen joko käsin kirjoittamalla tai antamalla pass:n generoida satunnaisen salasanan puolestasi:

# Lisää salasana käsin (kysyy syötettä kahdesti)
pass insert email/gmail.com

# Anna pass generoida 24 merkin satunnainen salasana
pass generate email/gmail.com 24
# Tuloste:
# The generated password for email/gmail.com is:
# xK9#mQp2$vR7nL4tY8wZ3aH6

Vaiheet 5-6: salasanojen haku ja kansiorakenteen järjestäminen

Vaihe 5: Hae ja kopioi salasanoja. Kun varastossa on merkintöjä, niiden hakeminen on nopeaa. Peruskomento pass show tulostaa salasanan ruudulle, mutta käytännössä kannattaa lähes aina käyttää -c-lippua, joka kopioi salasanan leikepöydälle ja tyhjentää sen automaattisesti 45 sekunnin kuluttua:

# Listaa koko varasto puurakenteena
pass

# Näytä salasana ruudulla
pass show email/gmail.com

# Kopioi salasana leikepöydälle (tyhjenee 45 sekunnissa)
pass -c email/gmail.com
# Tuloste: Copied email/gmail.com to clipboard. Will clear in 45 seconds.

Vaihe 6: Järjestä kansiorakenne. Koska pass tallentaa jokaisen tunnuksen omaan tiedostoonsa, kannattaa käyttää selkeää hakemistohierarkiaa heti alusta lähtien. Yleinen käytäntö on jaotella merkinnät kategorioittain, esimerkiksi tyo/, henkilokohtainen/ ja palvelimet/:

pass insert tyo/gitlab.yritys.fi
pass insert henkilokohtainen/pankki/nordea
pass insert palvelimet/vps-hetzner-01/root

# Siirrä tai nimeä merkintä uudelleen
pass mv email/gmail.com henkilokohtainen/sahkoposti/gmail

# Poista vanhentunut merkintä
pass rm palvelimet/vanha-palvelin

Hyvin suunniteltu hakemistorakenne maksaa itsensä takaisin heti, kun varastossa on satoja merkintöjä: pass show ja pass find tukevat molemmat polkujen ja hakusanojen osittaista täydennystä, joten johdonmukainen nimeäminen nopeuttaa jokapäiväistä käyttöä huomattavasti.

Migraatio toisesta salasananhallinnasta pass:iin

Jos sinulla on jo satoja tunnuksia esimerkiksi Bitwardenissa, KeePassXC:ssä tai selaimen sisäänrakennetussa salasananhallinnassa, niiden käsin uudelleenkirjoittaminen pass-varastoon ei ole järkevää. Tähän tarkoitukseen on olemassa pass-import-lisäosa, joka osaa lukea kymmenien eri palveluiden CSV- ja JSON-vientitiedostoja ja luoda niistä automaattisesti oikean kansiorakenteen.

# Asenna pass-import
sudo apt install pass-extension-import   # Debian/Ubuntu
pip install --user passimport            # vaihtoehtoinen asennustapa

# Vie ensin tunnukset lähdesovelluksesta CSV-muodossa, esimerkiksi Bitwardenista,
# ja tuo se pass-varastoon kansioon "tuonti-bitwarden"
pass import bitwarden bitwarden_export.csv -p tuonti-bitwarden

# Tarkista tuonnin jälkeen, että rakenne näyttää järkevältä
pass tuonti-bitwarden

Tuonnin jälkeen kannattaa käydä hakemistorakenne läpi ja siirtää merkinnät omaan luokitteluusi sopiviksi pass mv-komennolla. Muista myös poistaa alkuperäinen CSV-vientitiedosto turvallisesti esimerkiksi shred-komennolla, koska se sisältää kaikki salasanasi selväkielisenä levyllä tuonnin jälkeen.

Erityisen arkaluonteisten ympäristöjen, kuten tuotantoinfrastruktuurin pääkäyttäjätunnusten, kohdalla automaattista tuontia kannattaa käyttää harkiten. Massatuonti on nopea tapa saada satoja merkintöjä varastoon kerralla, mutta se myös kopioi suoraan mahdolliset vanhat, heikot tai uudelleenkäytetyt salasanat sellaisenaan. Migraation yhteydessä kannattaa hyödyntää tilaisuutta ja kierrättää samalla vanhimmat ja heikoimmat tunnukset uusilla, pass generate-komennolla luoduilla salasanoilla sen sijaan, että siirtäisi vanhat ongelmat uuteen järjestelmään sellaisenaan.

Vaiheet 7-8: Git-synkronointi ja etäpalvelimen käyttöönotto

Vaihe 7: Ota käyttöön paikallinen versionhallinta. Pass tunnistaa automaattisesti, jos varastokansiossa on alustettu Git-repositorio, ja alkaa tehdä committeja jokaisesta muutoksesta. Alustus tehdään yhdellä komennolla:

cd ~/.password-store
pass git init
# Tuloste: Initialized empty Git repository in /home/kayttaja/.password-store/.git/

# Tästä eteenpäin jokainen "pass insert", "pass rm" jne. tekee automaattisen commitin
pass git log --oneline
# 4f2a1c9 Add given password for henkilokohtainen/sahkoposti/gmail to store.
# 9b71e03 Add generated password for email/gmail.com to store.

Vaihe 8: Yhdistä etäpalvelimeen. Synkronointi toiseen laitteeseen vaatii Git-etärepositorion. Voit käyttää yksityistä GitHub- tai GitLab-repositoriota, tai pystyttää oman Git-palvelimen esimerkiksi SSH:n yli. Muista, että vaikka jokainen tiedosto on GPG-salattu, tiedostojen nimet ja hakemistorakenne näkyvät etärepositoriossa salaamattomina, joten valitse palvelin, johon luotat, tai käytä yksityistä repositoriota:

pass git remote add origin [email protected]:kayttaja/salasanavarasto-yksityinen.git
pass git push -u origin main

# Toisella laitteella: kloonaa olemassa oleva varasto
git clone [email protected]:kayttaja/salasanavarasto-yksityinen.git ~/.password-store

# Päivittäinen synkronointi molempiin suuntiin
pass git pull
pass git push

Jos et halua luottaa mihinkään kolmannen osapuolen Git-palveluun, oma itseisännöity palvelininfrastruktuuri toimii yhtä hyvin etärepositoriona, kunhan SSH-avainpohjainen todennus on kunnossa. Yksinkertaisin vaihtoehto on paljas Git-repositorio omalla VPS-palvelimella (git init --bare ~/salasanavarasto.git), johon otetaan yhteys tavallisella SSH-avaimella ilman erillistä Git-palvelinohjelmistoa. Jos taas haluat käyttöliittymän, katselmoinnin ja pääsynhallinnan pull requesteille, kannattaa harkita täysiveristä Git-palvelinta.

Riippumatta valitusta etäpalvelusta, kannattaa käyttää repositoriokohtaista deploy-avainta pääkäyttäjän henkilökohtaisen SSH-avaimen sijaan, erityisesti jos samaa konetta käyttää useampi henkilö tai jos varasto synkronoidaan automatisoidusta CI-ympäristöstä. Deploy-avain voidaan rajoittaa pelkkään yhteen repositorioon ja tarvittaessa vain luku- tai vain kirjoitusoikeuteen, mikä pienentää vahingon laajuutta, jos avain jostain syystä vuotaa.

Vaihe 9: kaksivaiheinen todennus pass-otp-laajennuksella

Pass-otp-lisäosa mahdollistaa TOTP-koodien (aikaperustaiset kertakäyttökoodit) tallentamisen samaan salattuun varastoon salasanan rinnalle. Käytännössä voit generoida kaksivaiheisen todennuksen koodin suoraan komentoriviltä, ilman erillistä puhelinsovellusta:

# Lisää OTP-siemen palvelun antamasta otpauth://-URI:sta
pass otp insert tyo/gitlab.yritys.fi -s
# Liitä palvelun QR-koodista purettu otpauth://totp/... -merkkijono ja paina Ctrl+D

# Generoi voimassa oleva 6-numeroinen koodi
pass otp tyo/gitlab.yritys.fi
# Tuloste: 482913

# Kopioi koodi suoraan leikepöydälle
pass otp -c tyo/gitlab.yritys.fi

On syytä huomioida, että salasanan ja kaksivaiheisen todennuksen siemenen säilyttäminen samassa GPG-salatussa tiedostossa yhdistää molemmat tekijät saman avaimen taakse. Jos yksityinen GPG-avaimesi vaarantuu, hyökkääjä saa käyttöönsä sekä salasanan että kertakäyttökoodin generointikyvyn samalla kertaa. Monissa organisaatioissa suositellaan siksi pitämään OTP-siemenet erillisessä laitteessa tai laitteistotokenissa kriittisimpien tilien osalta.

Muista myös tallentaa palvelun antamat varakoodit (backup codes) omaan merkintäänsä heti kaksivaiheisen todennuksen käyttöönoton yhteydessä. Jos puhelin tai laite, jolla OTP-koodi tavallisesti generoidaan, katoaa tai hajoaa, varakoodit ovat usein ainoa tapa päästä tilille takaisin ilman pitkää palvelun tukiprosessia.

Vaihe 10: selain- ja mobiili-integraatiot

Vaikka pass on lähtökohtaisesti komentorivityökalu, sen ympärille on rakentunut laaja ekosysteemi selain- ja mobiililaajennuksia, jotka lukevat suoraan samaa ~/.password-store-hakemistoa.

TyökaluAlustaKäyttötarkoitus
browserpassFirefox, Chrome, Chromium-pohjaiset selaimetAutomaattinen täyttö selaimessa suoraan varastosta
passffFirefoxVaihtoehtoinen selainlaajennus, natiivi Firefox-integraatio
Android Password StoreAndroidAvoimen lähdekoodin Android-sovellus, synkronoi Git-repositorion kautta
Pass for iOSiOSKolmannen osapuolen iOS-asiakas samalle varastoformaatille
pass-importKomentoriviTuo tunnuksia Bitwardenista, KeePassista ja muista hallinnoista

Selainlaajennukset käytännössä

Browserpass ja passff toimivat samalla periaatteella: selainlaajennus kutsuu taustalla paikallisesti asennettua natiivisovellusta (native messaging host), joka puolestaan kutsuu pass-komentoa ja palauttaa tuloksen selaimelle. Mitään salasanaa ei koskaan lähetetä verkon yli laajennuksen kautta, koska koko haku- ja purkuprosessi tapahtuu paikallisesti samalla koneella. Asennus vaatii kaksi osaa: itse selainlaajennuksen selaimen kaupasta, sekä natiivisovellussillan, joka asennetaan yleensä paketinhallinnasta (esimerkiksi sudo apt install browserpass-native) ja rekisteröidään manuaalisesti valitsemallesi selaimelle.

Mobiilikäytön turvallisuusnäkökohdat

Mobiilikäyttö vaatii yleensä sekä GPG-yksityisavaimen että Git-repositorion pääsyn puhelimelle, mikä on syytä miettiä tarkkaan: yksityisavaimen kopioiminen mobiililaitteelle laajentaa hyökkäyspintaa, koska puhelin on tietokonetta alttiimpi katoamiselle ja varkaudelle julkisissa tiloissa. Vaihtoehtona monet käyttäjät pitävät mobiililaitteen vain lukutilassa, jolloin puhelimella ei ole kirjoitusoikeutta eikä täyttä yksityisavainta, vaan pelkkä alikäyttöoikeuksin varustettu alialain, joka kattaa vain ne merkinnät, joita tarvitaan liikkeellä ollessa. Android Password Store tukee myös OpenKeychain-sovelluksen kautta avainten pitämistä erillään itse salasanasovelluksesta, mikä pienentää yhden sovelluksen haavoittumisen vaikutusta.

Vaiheet 11-12: varmuuskopiointi, palautus ja avaimen kierrätys

Vaihe 11: Varmuuskopioi sekä varasto että avain. Git-synkronointi toimii varmuuskopiona vain, jos etärepositorio on erillisessä sijainnissa. Yhtä tärkeää on varmuuskopioida itse GPG-yksityisavain, sillä ilman sitä salattu varasto on käytännössä palautumattomasti lukittu:

# Vie yksityinen avain salattuun varmuuskopiotiedostoon
gpg --export-secret-keys --armor 3AA5C34371567BD2 > gpg-avain-varmuuskopio.asc

# Vie myös julkinen avain (helpompi jakaa, ei salaista sisältöä)
gpg --export --armor 3AA5C34371567BD2 > gpg-julkinen-avain.asc

# Vie myös peruutussertifikaatti, jos avain pitää joskus mitätöidä
gpg --gen-revoke 3AA5C34371567BD2 > gpg-peruutus.asc

# Säilytä nämä kolme tiedostoa offline-tallennusvälineellä, EI samassa
# paikassa kuin Git-etärepositorio

Pelkkä varmuuskopion olemassaolo ei riitä, jos sitä ei ole koskaan testattu. Kannattaa säännöllisin väliajoin, esimerkiksi kerran vuodessa avaimen uusimisen yhteydessä, simuloida täydellinen palautus tyhjälle testikoneelle:

# Testaa palautus täysin tyhjässä ympäristössä (esim. kertakäyttöinen VM)
gpg --import gpg-avain-varmuuskopio.asc
git clone [email protected]:kayttaja/salasanavarasto-yksityinen.git ~/.password-store

# Jos tämä komento tulostaa salasanan onnistuneesti, palautus toimii
pass show henkilokohtainen/sahkoposti/gmail

Jos palautustesti epäonnistuu, on parempi huomata se rauhallisessa testitilanteessa kuin todellisessa hätätilanteessa, jossa alkuperäinen laite on jo kadonnut tai rikki.

Vaihe 12: Kierrätä avain tarvittaessa. Jos epäilet avaimesi vaarantuneen, tai jos sen voimassaolo on umpeutumassa, koko varasto pitää salata uudelleen uudella avaimella. Pass tukee tätä yhdellä komennolla, joka purkaa ja salaa jokaisen tiedoston uudestaan:

# Vaihda .gpg-id koko varastolle tai yksittäiselle alikansiolle
pass init "[email protected]"

# Voit myös lisätä useamman vastaanottajan (esim. varmuuskopioavain
# tai tiimin jäsen), jolloin tiedostot salataan kaikille avaimille
pass init "[email protected]" "[email protected]"

pass git add -A
pass git commit -m "Kierrätä GPG-avain ja salaa varasto uudelleen"
pass git push

Usean vastaanottajan malli on erityisen hyödyllinen tiimikäytössä: kansiokohtainen .gpg-id-tiedosto voidaan asettaa eri alikansioihin, jolloin esimerkiksi tuotanto/-kansio salataan vain tuotantotiimin avaimille ja kehitys/-kansio kehitystiimin avaimille.

Valmis esimerkkiprojekti: koko työnkulku komennolta komennolle

Kaikki tähän mennessä käydyt vaiheet voidaan koota yhdeksi yhtenäiseksi kokonaisuudeksi. Alla on koottu täydellinen, toimiva esimerkki, joka vie tuoreen Debian- tai Ubuntu-koneen tyhjästä synkronoituun, kaksivaiheisella todennuksella varustettuun salasanavarastoon. Skripti kattaa riippuvuuksien asennuksen, avaimenluonnin, varaston alustuksen, esimerkkimerkintöjen lisäyksen, OTP-siemenen tallennuksen ja etärepositorion käyttöönoton yhdessä ajossa. Voit kopioida tämän skriptin sellaisenaan testiympäristöön ja muokata muuttujat, sähköpostiosoitteet ja repositorio-osoitteen omiksesi ennen tuotantokäyttöä:

#!/usr/bin/env bash
set -euo pipefail

# 1. Asenna riippuvuudet
sudo apt update
sudo apt install -y pass pass-extension-otp git xclip gnupg

# 2. Luo GPG-avain automatisoidusti (batch-tila, muokkaa tiedot omiksesi)
cat > gpg-batch.conf <

Tuotantokäytössä batch-tilaista avaimenluontia kannattaa käyttää harkiten: %no-protection-asetus jättää yksityisavaimen ilman salalausetta, mikä sopii kertaluontoiseen testaukseen mutta ei tuotantoympäristöön. Oikeassa käytössä avain kannattaa aina suojata vahvalla salalauseella interaktiivisen gpg --full-generate-key-komennon kautta, kuten vaiheessa 1 näytettiin.

Yleisimmät sudut pass-työkalun käytössä

Vaikka pass on rakenteeltaan yksinkertainen, useat käyttäjät kompastuvat samoihin virheisiin. Näihin kannattaa kiinnittää huomiota heti käyttöönotosta lähtien, sillä osa virheistä huomataan usein vasta silloin, kun jotain on jo mennyt pieleen.

  • Salaamattoman etärepositorion valinta julkiseksi. Vaikka tiedostojen sisältö on GPG-salattu, hakemistorakenne ja tiedostonimet paljastavat, mille palveluille sinulla on tunnuksia. Julkinen repositorio kertoo hyökkääjälle täsmälleen, mitä pankkeja, työkaluja ja palveluita käytät, mikä helpottaa kohdennettua kalastelua. Käytä siis aina yksityistä repositoriota.
  • Yksityisavaimen varmuuskopioinnin unohtaminen. Jos kannettava tietokone hajoaa eikä avaimesta ole varmuuskopiota, koko salasanavarasto menetetään pysyvästi, sillä GPG-salausta ei voi purkaa ilman oikeaa yksityisavainta. Tästä ei ole olemassa "unohdin salasanan" -palautuslinkkiä kuten pilvipalveluissa.
  • Liian heikko tai puuttuva salalause GPG-avaimessa. Ilman salalausetta kuka tahansa, joka pääsee käsiksi avaintiedostoon esimerkiksi varastetun kannettavan kautta, pääsee käsiksi koko varastoon välittömästi ilman lisäesteitä.
  • Vanhentuneen GnuPG-version käyttö. Versiot 2.5.13–2.5.16 sisälsivät kriittisen gpg-agent-haavoittuvuuden (T8044), ja erillinen CVE-2025-68973 vaikutti myös useisiin jakelupaketteihin, muun muassa RHEL 9- ja Ubuntu 25.10 -ympäristöihin. Tarkista aina asennettu versio ja päivitä säännöllisesti jakelusi tietoturvatiedotteiden mukaan.
  • Leikepöydän liian pitkä säilytysaika. Oletuksena pass tyhjentää leikepöydän 45 sekunnissa, mutta jos tätä asetusta on muutettu tai komentoa käytetään ilman -c-lippua (esimerkiksi pass show ilman kopiointia), salasana voi jäädä näkyviin päätteen historiaan tai ruudulle pidemmäksi aikaa kuin on tarkoitus.
  • OTP-siementen tallentaminen samaan tiedostoon salasanan kanssa ilman harkintaa. Tämä yhdistää molemmat todennustekijät saman GPG-avaimen taakse, mikä heikentää kaksivaiheisen todennuksen alkuperäistä tarkoitusta kriittisimpien tilien, kuten tuotantoympäristöjen pääkäyttäjätunnusten, kohdalla.

Yhteistä näille virheille on se, että ne eivät näy heti. Salasananhallinta toimii päivittäisessä käytössä täysin normaalisti, kunnes kannettava tietokone varastetaan, avain vanhenee, tai GnuPG:ssä julkaistaan uusi tietoturvatiedote. Siksi kannattaa varata käyttöönoton yhteyteen aikaa myös näiden reunatapausten läpikäymiseen, ei pelkästään perustoimintojen testaamiseen.

Vianmääritys: yleisimmät ongelmat ja ratkaisut

Suurin osa pass-työkalun käytön aikana esiin tulevista ongelmista juontaa juurensa joko gpg-agentin tilaan, SSH-avainten puuttumiseen tai päätteen ympäristömuuttujiin. Seuraava taulukko kokoaa yleisimmät virhetilanteet ja niiden ratkaisut, jotta et joudu etsimään niitä erikseen jokaisen ongelman kohdalla.

OngelmaTodennäköinen syyRatkaisu
"gpg: decryption failed: No secret key"Käytössä oleva avainrengas ei sisällä oikeaa yksityisavaintaTuo avain uudelleen komennolla gpg --import avain.asc ja tarkista gpg --list-secret-keys
"gpg: signing failed: Inappropriate ioctl for device"GPG ei löydä pääteikkunaa salalauseen kysymiseen SSH-istunnossaAseta export GPG_TTY=$(tty) shell-profiiliisi
pass insert jää roikkumaan tai epäonnistuu hiljaagpg-agent on jumissa tai vanhentunut istuntoAja gpgconf --kill gpg-agent ja yritä uudelleen
Git-push epäonnistuu "Permission denied (publickey)"SSH-avain ei ole lisätty etäpalvelun avainhallintaanTarkista ssh -T [email protected] ja lisää julkinen avain palveluun
pass otp -c ei löydä otp-komentoapass-otp-lisäosaa ei ole asennettu tai se ei ole PATH:ssaAsenna pass-extension-otp-paketti jakelustasi
Merkinnät eivät synkronoidu toiselle koneelleToisella koneella ei ole ajettu pass git pullAja manuaalisesti pass git pull tai lisää alias, joka ajaa sen automaattisesti
"gpg: WARNING: unsafe permissions on homedir"~/.gnupg-kansion oikeudet ovat liian avoimetAja chmod 700 ~/.gnupg ja chmod 600 ~/.gnupg/*
Leikepöydälle kopiointi ei toimi Waylandissaxclip ei tue Wayland-istuntojaAsenna wl-clipboard ja aseta se pass:n oletustyökaluksi ympäristömuuttujalla

Jos ongelma ei ratkea taulukon ohjeilla, kannattaa seuraavaksi ajaa pass-komento bash -x-tilassa (esimerkiksi bash -x $(which pass) show polku), jolloin näet tarkalleen, missä kohtaa suoritus pysähtyy tai epäonnistuu. Suuri osa raportoiduista bugeista osoittautuu lopulta ympäristön (PATH, GPG_TTY, puuttuva riippuvuus) eikä itse pass-skriptin ongelmaksi.

Komentopikaopas: yleisimmät pass-komennot

Kun perustoimenpiteet on käyty läpi, seuraava taulukko toimii nopeana muistilistana päivittäiseen käyttöön. Kannattaa tulostaa tai tallentaa se lähelle, kunnes komennot muuttuvat selkärangan kautta tulevaksi rutiiniksi.

KomentoMitä se tekee
passListaa koko varaston puurakenteena
pass show polkuNäyttää merkinnän ruudulla
pass -c polkuKopioi salasanan leikepöydälle 45 sekunniksi
pass insert polkuLisää uuden salasanan manuaalisesti
pass generate polku 24Generoi 24 merkin satunnaisen salasanan
pass edit polkuAvaa merkinnän oletustekstieditorissa muokattavaksi
pass find hakusanaEtsii merkintöjä tiedostonimen perusteella
pass grep hakusanaEtsii merkintöjä sisällön perusteella (purkaa jokaisen tiedoston)
pass mv vanha uusiSiirtää tai nimeää merkinnän uudelleen
pass rm polkuPoistaa merkinnän
pass git logNäyttää varaston muutoshistorian
pass otp polkuGeneroi voimassa olevan TOTP-koodin

Suorituskyky ja käyttö suurissa varastoissa

Pienellä, muutaman kymmenen merkinnän varastolla mikään ei tunnu hitaalta, mutta satojen tai tuhansien tunnusten kohdalla kannattaa kiinnittää huomiota muutamaan käytännön asiaan. Ensinnäkin pass grep purkaa jokaisen tiedoston salauksen erikseen etsiäkseen hakusanaa sisällöstä, mikä voi tuntua hitaalta suurissa varastoissa, jos GPG-agentti ei ole vielä välimuistittanut avainta. Toiseksi, shell-täydennys (bash- tai zsh-completion) nopeuttaa navigointia merkittävästi, kun kansiorakenne kasvaa syväksi:

# Bash: lisää .bashrc-tiedostoon
source /usr/share/bash-completion/completions/pass

# Zsh: varmista, että completion-polku on mukana fpath-muuttujassa
fpath=(/usr/share/zsh/site-functions $fpath)
autoload -Uz compinit && compinit

gpg-agent välimuistittaa purkuun käytetyn avaimen oletuksena tietyksi ajaksi, jolloin peräkkäiset pass show-kutsut eivät kysy salalausetta joka kerta uudelleen. Välimuistin kesto on säädettävissä ~/.gnupg/gpg-agent.conf-tiedoston default-cache-ttl- ja max-cache-ttl-asetuksilla, mikä on hyvä tasapainottaa käyttömukavuuden ja tietoturvan välillä: pidempi välimuistiaika nopeuttaa työskentelyä, mutta pitää puretun avaimen pidempään muistissa.

Edistyneet vinkit tehokäyttäjille

Kun perustoiminnot ovat hallussa, pass:n todellinen vahvuus tulee esiin automaatiossa ja laajennettavuudessa.

  • Git-hookit automaattiseen pushiin. Lisää ~/.password-store/.git/hooks/post-commit-tiedostoon skripti, joka työntää muutokset etärepositorioon heti jokaisen commitin jälkeen, jolloin unohdat harvemmin synkronoinnin ja vältät tilanteen, jossa yksi laite ajautuu pahasti jälkeen toisesta.
  • Laitteistotoken yksityisavaimen säilytykseen. GPG tukee älykortteja ja laitteistotokeneita, jolloin yksityisavain ei koskaan poistu fyysisestä laitteesta edes salauksen ja purun aikana. Tämä nostaa suojaustason huomattavasti kannettavan tietokoneen varkaustilanteessa, koska pelkkä levyn kopiointi ei enää riitä avaimen varastamiseen.
  • pass-audit-lisäosa. Tarkistaa varastossa olevat salasanat tunnettuja vuotolistoja ja heikkoja salasanakäytäntöjä vastaan suoraan komentoriviltä ilman, että salasanoja lähetetään ulkopuolisille palveluille selväkielisenä. Tämä sopii hyvin säännölliseen, esimerkiksi kuukausittaiseen, salasanahygienian tarkistukseen.
  • Kansiokohtaiset .gpg-id-tiedostot tiimikäytössä. Kuten avainten kierrätysvaiheessa mainittiin, voit asettaa eri alikansioille eri vastaanottajalistat, jolloin yksi Git-repositorio voi palvella useaa tiimiä eri pääsyoikeuksilla ilman, että jokaiselle tiimille tarvitsee ylläpitää erillistä repositoriota.
  • Integraatio tmux- tai shell-promptiin. Monet käyttäjät kirjoittavat pieniä wrapper-funktioita, jotka yhdistävät pass show-kutsun suoraan SSH-, tietokanta- tai API-työkalujen käynnistysskripteihin, jolloin salasanaa ei koskaan tarvitse kirjoittaa käsin tai tallentaa selväkielisenä ympäristömuuttujaan tai shell-historiaan.
  • Automaattinen avaimen vanhenemismuistutus. Koska GPG-avaimille kannattaa asettaa voimassaoloaika, on hyvä lisätä cron-tehtävä tai kalenterimuistutus, joka tarkistaa gpg --list-keys-tulosteen voimassaolopäivän ja varoittaa hyvissä ajoin ennen vanhenemista, jotta uusiminen ei jää viime tinkaan.

Pass-varaston auditointi ja ylläpito ajan myötä

Salasanavaraston käyttöönotto on vasta alku. Kuten minkä tahansa tuotantojärjestelmän kohdalla, pass-varasto tarvitsee säännöllistä ylläpitoa pysyäkseen turvallisena ja hallittavana vuosien mittaan. Koska koko historia on tallessa Git-lokissa, auditointi on itse asiassa helpompaa kuin monessa suljetussa salasananhallinnassa: voit tarkalleen nähdä, kuka on lisännyt, muuttanut tai poistanut minkäkin merkinnän ja milloin.

# Listaa kaikki merkinnät, joita ei ole muutettu viimeisen vuoden aikana
# (mahdollisesti vanhentuneita tai käyttämättömiä tunnuksia)
find ~/.password-store -name "*.gpg" -mtime +365

# Tarkista, kuka on tehnyt muutoksia viimeisen kuukauden aikana
pass git log --since="1 month ago" --pretty=format:"%ad %an %s" --date=short

# Etsi merkinnät, jotka sisältävät tietyn avainsanan (esim. vanhentunut palvelu)
pass grep "vanha-palvelu"

Hyvä käytäntö on käydä koko varasto läpi esimerkiksi kaksi kertaa vuodessa: poistaa käytöstä jääneiden palveluiden tunnukset, kierrättää vanhimmat salasanat pass generate-komennolla ja tarkistaa, että kaikilla aktiivisilla tiimin jäsenillä on edelleen tarpeelliset .gpg-id-oikeudet, ja että irtisanoutuneiden työntekijöiden avaimet on poistettu vastaanottajalistoilta ja varasto salattu uudelleen ilman heidän avaintaan.

Tietoturva ja GDPR-näkökulma Pohjoismaissa

Yritysympäristössä salasananhallinnan valintaan liittyy myös sääntelynäkökulma. GDPR:n 32 artikla edellyttää rekisterinpitäjiltä ja käsittelijöiltä asianmukaisia teknisiä ja organisatorisia toimenpiteitä käsittelyn riskiä vastaavalla tasolla, mutta asetus ei määrää käytettäväksi mitään tiettyä tuotetta tai arkkitehtuuria. Tämä koskee yhtä lailla pilvipohjaisia holveja kuin itse ylläpidettyjä GPG-pohjaisia ratkaisuja.

Käytännössä tämä tarkoittaa, että pass-tyyppinen ratkaisu voi olla teknisesti asianmukainen valinta, mutta vastuu siirtyy organisaatiolle itselleen huomattavasti enemmän kuin valmiin SaaS-palvelun kohdalla. Avainten hallinta, varmuuskopiointi, pääsyoikeuksien poistaminen työsuhteen päättyessä ja koko auditointiketju pitää rakentaa itse, kun taas kaupallinen palveluntarjoaja hoitaa nämä prosessit osana tuotettaan. Organisaation, joka harkitsee pass-tyyppistä ratkaisua tuotantokäyttöön, kannattaa dokumentoida nämä prosessit yhtä huolellisesti kuin mikä tahansa muu tietoturvakriittinen järjestelmä, ja verrata ratkaisua esimerkiksi itseisännöityihin vaihtoehtoihin, joissa hallinnointi on keskitetympää.

Sähköpostiliikenteen salaukseen liittyvät GPG-periaatteet on käyty tarkemmin läpi omassa PGP-salausta käsittelevässä oppaassamme, joka täydentää tätä artikkelia hyvin, jos GPG-avainten hallinta on sinulle täysin uutta.

Pohjoismaisessa kontekstissa NIS2-direktiivin toimeenpano on nostanut monissa organisaatioissa yleistä tietoturvan perustason vaatimustasoa, mikä koskee myös pääsynhallintaa ja salaisuuksien käsittelyä. Vaikka pass sopii teknisesti hyvin tähän maailmaan (avoin lähdekoodi, tarkastettavissa oleva salausketju, ei ulkoista riippuvuutta), organisaation pitää silti pystyä osoittamaan, että pääsynhallinta, avainten elinkaari ja poikkeustilanteiden käsittely on suunniteltu, dokumentoitu ja testattu. Pelkkä työkalun tekninen turvallisuus ei riitä, jos prosessi sen ympärillä on hatara.

Käytännön suositus on yksinkertainen: jos organisaatiossasi on jo vahva Git- ja GPG-osaaminen esimerkiksi koodin allekirjoituksen tai infrastruktuurin hallinnan kautta, pass-tyyppinen ratkaisu istuu luontevasti osaksi olemassa olevaa työkaluketjua. Jos taas näitä valmiuksia ei ole, keskitetympi ja valmiiksi auditoitu ratkaisu voi täyttää GDPR:n 32 artiklan vaatimukset pienemmällä ylläpitotaakalla.

Dokumentoinnin kannalta kannattaa kirjata ylös ainakin seuraavat asiat: kuka omistaa minkäkin GPG-avaimen, miten uusi työntekijä saa pääsyn ja miten pääsy poistetaan työsuhteen päättyessä, missä varmuuskopiot sijaitsevat ja kuka niistä vastaa, sekä miten toimitaan epäillyn avainvuodon tilanteessa. Nämä samat kysymykset pitää joka tapauksessa vastata riippumatta siitä, käytetäänkö pass:ia vai kaupallista palvelua, mutta itseisännöidyssä ratkaisussa vastuu vastausten oikeellisuudesta on kokonaan organisaatiolla itsellään.

Yhteenveto: milloin pass kannattaa ottaa käyttöön

Kahdentoista vaiheen jälkeen sinulla pitäisi olla toimiva, Git-synkronoitu ja kaksivaiheisella todennuksella varustettu salasanavarasto, joka toimii täysin ilman ulkoista pilvipalvelua. Tämä ei tarkoita, että kaikkien pitäisi luopua graafisista salasananhallinnoista: valinta riippuu siitä, kuinka paljon arvostat läpinäkyvyyttä ja hallittavuutta verrattuna valmiiksi rakennettuun käyttökokemukseen.

Jos tunnistat itsesi kuvauksesta "vietän suuren osan päivästä päätteessä, hallinnoin useita palvelimia ja arvostan sitä, että voin tarkistaa jokaisen komponentin lähdekoodin", pass on todennäköisesti hyvä lisä työkalupakkiisi, joko yksinään tai rinnakkain jonkin graafisen ratkaisun kanssa. Jos taas prioriteettina on mahdollisimman matala kynnys ja valmis tuki useille laitteille ilman komentorivin käyttöä, kannattaa pysyä kaupallisessa tai itseisännöidyssä graafisessa vaihtoehdossa. Kumpikaan valinta ei ole väärä: molemmat voivat täyttää saman tietoturvatavoitteen eri tavalla.

Usein kysytyt kysymykset

Onko pass turvallisempi kuin Bitwarden tai NordPass?
Turvallisuus riippuu käyttötavasta, ei pelkästä työkalusta. Pass poistaa riippuvuuden yhden yrityksen pilvi-infrastruktuurista, mutta siirtää avainten hallinnan, varmuuskopioinnin ja palautuksen kokonaan käyttäjän vastuulle. Kaupalliset palvelut tarjoavat valmiin, auditoidun infrastruktuurin, mutta luottamus kohdistuu tällöin palveluntarjoajaan.

Voiko pass:ia käyttää Windows-koneella?
Suoraan natiivisti ei, mutta WSL (Windows Subsystem for Linux) mahdollistaa pass:n asennuksen ja käytön normaalisti Linux-ympäristön sisällä Windows-koneella.

Mitä tapahtuu, jos unohdan GPG-avaimeni salalauseen?
Jos salalause unohtuu eikä varmuuskopiota tai peruutussertifikaattia ole, koko salasanavarasto jää pysyvästi purkamattomaksi. Tästä syystä vaiheessa 11 kuvattu avaimen ja peruutussertifikaatin varmuuskopiointi on kriittisen tärkeää.

Voiko pass-varaston synkronoida ilman GitHubia?
Kyllä. Mikä tahansa Git-yhteensopiva etärepositorio kelpaa, mukaan lukien itseisännöity Git-palvelin, GitLab, Bitbucket tai paikallinen verkkolevy, joka on alustettu paljaana Git-repositoriona (git init --bare).

Toimiiko pass mobiililaitteissa?
Kyllä, avoimen lähdekoodin Android Password Store -sovellus ja kolmannen osapuolen iOS-asiakkaat lukevat samaa Git-repositoriota. Yksityisavaimen tuominen mobiililaitteelle kannattaa kuitenkin harkita tarkkaan turvallisuusnäkökulmasta.

Onko pass ilmainen?
Kyllä, pass on avoimen lähdekoodin ohjelmisto, joka on ilmainen käyttää. Ainoat kustannukset syntyvät mahdollisesta etäpalvelimen ylläpidosta, jos et käytä ilmaista yksityistä repositoriota.

Miten siirrän salasanat Bitwardenista tai KeePassXC:stä pass:iin?
pass-import-lisäosa tukee useiden yleisten salasananhallintojen CSV- tai JSON-vientitiedostojen tuontia suoraan pass-varastoon säilyttäen kansiorakenteen niin pitkälti kuin mahdollista.

Onko pass-varasto turvallinen, jos kannettava tietokone varastetaan?
Tiedostot itsessään pysyvät GPG-salattuina eikä niitä voi purkaa ilman yksityisavainta ja sen salalausetta. Riski kasvaa, jos avain on tallennettu ilman salalausetta tai jos gpg-agent on jättänyt salauksen puretun avaimen muistiin aktiivisen istunnon aikana.

Voiko pass:ia käyttää tiimissä ilman, että kaikki jakavat saman yksityisavaimen?
Kyllä, tähän on tarkoitettu usean vastaanottajan malli: kansiokohtainen .gpg-id-tiedosto voidaan täyttää usealla julkisella avaimella, jolloin pass salaa merkinnän automaattisesti kaikille listatuille vastaanottajille, ja jokainen tiimin jäsen purkaa tiedoston omalla henkilökohtaisella yksityisavaimellaan.

Mitä eroa on pass:lla ja itseisännöidyllä Vaultwardenilla?
Vaultwarden on palvelinpohjainen ratkaisu, joka tarjoaa graafisen käyttöliittymän, selainlaajennukset ja mobiilisovellukset valmiina, mutta vaatii jatkuvasti käynnissä olevan palvelimen. Pass ei tarvitse mitään keskitettyä palvelinta toimiakseen: pelkkä Git-etärepositorio riittää synkronointiin, mikä tekee siitä kevyemmän ylläpidettävän pienelle tekniselle tiimille.