no me acuerdo de nada… dejame en pass
!
index | about | archive | charlas | docs | links
dot
|
git
|
img
|
plt
|
tty
|
uml
…no me acuerdo, me lo olvido, me lo olvido, me olvidé!
Desde el 2014 que NO recuerdo la mayoría de mis passwords y es más,
ni siquiera sé cuáles son! y en cada servicio uso una password
diferente y bastante compleja. No tengo tan buena memoria, simplemente
uso pass
1.
dónde esta la magia?
pass
es un script de bash a la «unix way» 2 que se
que se ocupa de interactuar con otros comandos del sistema, como gpg
,
tree
y git
, resolviendo de una manera simple, un gran problema, me
permite gestionar todas mis contraseñas e incluso varias passphrases.
generar una contraseña
Para generar de manera aleatoria una contraseña alfanumérica de 64
caracteres para el usuario admin
del sitio example.com
es tan simple
como tipear esto:
pass generate admin/example.com -n 64
De esta manera se generará el archivo admin/example.com.gpg
en el
directorio ~/.password-store
y este archivo estará cifrado mediante
GPG
3 GNU Privacy Guard
utilizando la llave definida en el
archivo .gpg-id
dentro del directorio ~/.password-store
.
descifrando la magia…
Para descifrar una password es necesario contar con 2 cosas:
algo que yo tengo
, es decir los archivos de una llave GPGalgo que yo sé
, lapassphrase
4 ofrase de contraseña
Quiere decir que pass
solo me pregunta un nombre de archivo, genera la
contraseña y le dice a gpg
que la cifre y la guarde.
recuperar una contraseña
Esencialmente hay dos maneras, la primera es pedirle a pass
que me
muestre la contraseña guardada, de esta manera:
pass admin/example.com
Una mucho mejor es que en lugar de mostrarnos la contraseña,
directamente se la copie al clipboard o portapapeles y de estar
manera podría ingresar al sitio example.com
como el usuario admin
sin siquiera saber cuál es la contraseña!
pass -c admin/example.com
mmm… que tan seguro es todo esto?
Es posible que, en un descuido los archivos de mi GPG, alguien mas
logre copiarlos de alguna manera, o tal vez si perdí la notebook donde
estaban (nunca me pasó, ni me volverá a pasar), pero de suceder eso,
quien posea estos archivos va a necesitar la passphrase de la GPG y
en este punto radica la (in)seguridad, si utilizo una frase de
contraseña extremadamente corta o super adivinable o la tengo anotada
en un archivo de texto sin cifrar, vamos a estar comprometiendo todas
las contraseñas generadas con pass
pass <3 git
Cada vez que regeneramos una contraseña o creamos una nueva, pass
puede invocar a git
y guardar ese cambio en un repositorio,
inicialmente en el directorio ~/.password-store/.git
y llevar un log!
commit 252572a362264d91853d8ba5218380740c99c7db (HEAD -> master) Author: osiris <osiux@osiux.com> Date: Fri Feb 19 02:04:41 2021 -0300 Add generated password for admin/example.com.
Esto permite, poder volver a una versión anterior de una password.
secretos compartidos
Si se define un repositorio git
remoto para pass
, podés asegurarte
de tener todas tus contraseñas disponibles en otro lugar por si perdés
tu compu y no solo sirve de backup, además te permite compartir todas
tus contraseñas entre varios dispositivos, compu, notebook, celu, etc.
Solo hay que recordar sincronizar el repositorio git
de esta manera:
pass git pull pass git push
guardar una contraseña existente
En lugar de autogenerar la password con pass
, también es posible
insertar una contraseña, lo mas simple es tipearla luego de este
comando:
pass insert example.com/admin
y si en lugar de passwords usamos passphrases autogeneradas?
pass
permite que la contraseña sea un texto que provenga de otro
comando y para generar passphrases nada mejor que usar
gen-passphrase
5, por ejemplo para generar 4
palabras que comiencen con las letras p
, a
, s
y otra s
, y que
tengan entre 4 y 8 caracteres, el comando sería asi:
gen-passphrase pass 4 8 | pass insert -m admin/example.com
Una posible frase de contraseña auto-generada sería la siguiente:
panol algar sulfito socavar
automatizar los commits de git
Una manera de evitar tener que acordar de ejecutar pass git push
cada
tanto es utilizar un script que lo haga por vos
#!/bin/sh # This script comes with ABSOLUTELY NO WARRANTY, use at own risk # Copyright (C) 2014 Osiris Alejandro Gomez <osiux@osiux.com> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. cd ~/.password-store git ls-files --deleted -z | xargs -0 git rm >/dev/null 2>&1 git status --porcelain | awk '{print $2}' | while read i do git add "$i" done git commit -m "@ 00:00 hs - Autocommit" git push origin master
Y luego editar el crontab
para que se ejecute git.sh
cad 5 minutos!
*/5 * * * * $HOME/.password-store/git.sh
te recomiendo leer
ChangeLog
2022-11-13 20:39
agregar y actualizar tags OpenGraph2021-02-19 05:14
agregar no me acuerdo de nada… dejame enpass
!