[linux] password vraag

Geert Stappers stappers op stappers.nl
Za Dec 7 14:37:01 CET 2019


On Sat, Dec 07, 2019 at 09:47:55AM +0100, paai wrote:
> 
> On 07-12-2019 08:58, paai wrote:
> > 
> > On 06-12-19 19:12, Marcel Nijenhof wrote:
> > > Hoi Hans,
> > > 
> > > > Vraag: wat is een goede (hoeft niet noodzakelijk de beste te zijn)
> > > > en werkbare strategie om passwords in scripts te gebruiken?
> > > > 
> > > keyring + secret-tool!
> > > 
> > > https://lzone.de/blog/Using+Linux+keyring+secrets+from+your+scripts
> > > 
> > 
> > Ik ga dit ook uitproberen. Dank.
> 
> 
> Ca ne marche pas.
> 
> Ik heb een KDE distro, maar gnome-keyring is installed. Als ik probeer een
> password op te slaan met:
> 
> $ sudo secret-tool store --label mijnlabel paai mijnpassword
> 
> waarbij de user uiteraard 'paai' is en 'mijnpassword' het password van paai
> op deze machine, krijg ik
> 
> (secret-tool:13852): GLib-GObject-CRITICAL **: 09:36:04.451: g_object_unref:
> assertion 'G_IS_OBJECT (object)' failed
> secret-tool: Error calling StartServiceByName for org.freedesktop.secrets:
> Timeout was reached
> 
> 
> Als ik het zonder 'sudo' doe, word ik alsnog om een password gebvraagd. Ik
> geef paai's password en dan krijg ik de melding
> 
> ** Message: 09:40:50.081: Remote error from secret service:
> org.freedesktop.DBus.Error.UnknownMethod: No such interface
> 'org.freedesktop.Secret.Collection' on object at path
> /org/freedesktop/secrets/collection/login
> secret-tool: No such interface 'org.freedesktop.Secret.Collection' on object
> at path /org/freedesktop/secrets/collection/login
> 
> Kijkend op github voor deze meldingen krijg ik niet veel nuttigs te
> zien/horen. Wel moet ik bekennen dat ik nooit keyrings gebruik, ook de KDE
> variant niet, dus ik mis vast iets.

Net als in het echte leven missen we heel veel,  het zij zo.

Terug naar het oorspronkelijke probleem: password in scripts.

Voorbeeld
   whysql -u username  -p g3h31M  db9
wil je scripten als
   whysql -u ${LOGNAME} -p $( cat ~/.bestandWW_db9 )  db9


In ~/.bestandWW_db9 staan dan niet meer als 'g3h31M'
en heeft file permissies van "owner only".


Om te voorkomen dat je meerdere van die wachtwoordbestanden
gaat krijgen wil een script als

#!/bin/sh
case "$1" in
  app1)
    echo applica7ieA
    ;;
  db9)
    echo g3h31M
    ;;
  email)
    echo postww
    ;;
  pz)
    echo Pr0jectZ0
    ;;
  *)
    echo tochNogIets
    ;;
esac

Met execute permission van owner only.
Door het script `ww` te noemen wordt de script regel:

   whysql -u ${LOGNAME} -p $( ww db9 )  db9


Volgende stap is dat programma (script) en (wachtwoorden) data
gescheiden zijn. "secret-tool" is dan het programma
en wachtwoorden liggen / zitten in de "keyring".

Wat er allemaal klaar moet staan ( en vooral goed met staan )
om iets uit de "keyring" te halen, is nu dus het probleem.

Dat probleem heb ik opgelost (danwel omzeilt) door `pass`
te gebruiken. `pass` heeft zijn eigen "password store"
en heeft die versleutelt m.b.v.  GPG   ( PGP )

Bij ontsleuteling wordt de `gpg-agent` wakker die dan
om gpg wachtwoord vraagt. Als ik dat invoer wordt
de "password store"  "unlocked".  Ja, ik moet dus minimaal
1 wachtwoord onthouden.  De `gpg-agent` onthoudt het dan
een tijdje. In die tijd kan ik `pass` aanroepen zonder
dat ik opnieuw het ene-te-onthouden-wachtwoord in te voeren.

Website van pass:  https://www.passwordstore.org/


Groeten
Geert Stappers
-- 
Leven en laten leven


Meer informatie over de Linux maillijst