[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