Este repositório contém uma extensão do Chrome que integra o gerenciador de senhas com o Chrome.
Existem duas pastas neste repositório que contêm:
Para usar a extensão você precisa instalar a extensão em seu navegador Chrome ou Chrome e no aplicativo nativo python (chrome_pass).
Estas instruções foram testadas no Ubuntu 24.04 e Debian 12 (bookworm):
sudo apt-get install pass python3 python3-pip
pip install --user chrome-pass==1.0.1
chrome_pass install
Obtenha a extensão na Chrome Web Store.
Para reduzir a complexidade do código desta extensão, existem algumas suposições sobre como o armazenamento de senhas está estruturado. Para que esta extensão seja capaz de listar e descriptografar suas senhas, estas suposições devem ser seguidas:
Esta extensão assume que o armazenamento de senhas está localizado dentro da pasta .password-store dentro do seu diretório inicial:
$HOME/.password-store
Caso você tenha o armazenamento de senhas localizado em outro lugar, você pode tentar usar um link simbólico para contornar essa limitação ou definir a variável env PASSWORD_STORE_DIR
para apontar para o local de armazenamento de senhas.
Este plugin assume que as duas últimas partes de cada caminho de senha seguem esta estrutura:
[Service URL]/[Username]
Por exemplo, para manter algumas contas do Gmail e da Amazon:
~/.password-store/
├── mail.google.com
│ ├── me@gmailcom
│ ├── [email protected]
│ └── [email protected]
└── Amazon
├── www.amazon.com
│ ├── [email protected]
│ └── [email protected]
└── www.amazon.co.jp
├── [email protected]
└── [email protected]
Seus caminhos podem ter quantas partes você quiser desde que as duas últimas sigam a estrutura acima. E a parte [URL do serviço] deve corresponder ao URL da página que você está visualizando porque é usada para selecionar a senha correspondente da loja.
Se o arquivo pass tiver configurado pass-otp, então chrome-pass gerará o código TOTP e preencherá com ele quaisquer entradas de texto numérico no formulário.
Para contas IAM, precisamos não apenas do usuário e senha de login, mas também do ID ou alias de 12 dígitos da conta. Para essas contas, o chrome-pass possui uma lógica especial para poder preencher todas as informações na página de login.
Password Store
├── signin.aws.amazon.com
│ ├── [email protected]
│ ├── [email protected]
│ ├── 183413992345
│ ├── 550312930456-username1
│ ├── 550312930456-username2
│ └── accountalias
signin.aws.amazon.com
, que é o URL para login no console.pass edit ...
e adicione dois pares chave/valor em qualquer lugar após a linha de senha:username=[IAM username]
account=[12 digit AWS account id or alias]
username
para preencher o campo de nome de usuário, a account
para preencher o campo de ID da conta e a password
descriptografada para preencher o campo de senha. A extensão chrome-pass procura quaisquer pares chave/valor nos arquivos pass gpg e preenche qualquer campo de entrada HTML com ID igual à key
com o value
correspondente.
Além disso, se o value
for definido com os seguintes valores de espaço reservado especial, eles serão substituídos por:
pass__user
: Substituído pelo [Username]
extraído da última parte do caminho de passagem.pass__password
: substituído pela senha descriptografada.pass__otpauth
: Substituído pelo código pass-otp, se disponível. Observação
As teclas de espaço reservado especiais possuem caracteres de sublinhado duplo __
.
Isso permite que o chrome-pass funcione com alguns formulários de login não padrão, como o formulário de login do Apple Id. Esta página de login não possui um elemento de formulário e depende de javascript para funcionar. Felizmente, os campos de entrada HTML de nome de usuário e senha têm IDs bem definidos que podemos definir no arquivo chrome-pass para permitir que funcione:
# chrome-pass for Apple ID login from.
account_name_text_field=pass__user
password_text_field=pass__password
Adicionar os pares chave/valor acima ao arquivo de senha da conta Apple instruirá a extensão chrome-pass a preencher qualquer campo de entrada HTML com id account_name_text_field
com o nome de usuário e qualquer campo de entrada HTML com id password_text_field
com a senha descriptografada.
Isto é apenas para desenvolvedores ou pessoas que desejam ver o código-fonte antes de confiar suas senhas a alguma extensão escrita por uma pessoa desconhecida.
Dentro do Chrome, abra a URL chrome://extensions, verifique o modo Desenvolvedor e carregue o caminho para a pasta de extensão usando o botão Carregar extensão descompactada . Depois que a extensão for carregada no Chrome, anote o ID da extensão .
Em seguida, precisamos instalar o script wrapper chrome_pass e instalar o manifesto do aplicativo Native Host:
cd application
pip install --upgrade setuptools build --user
python -m build
pip install . --user
chrome_pass install [extension ID]
Substitua os campos personalizados otpoauth
por pass__otpauth
nos arquivos transmitidos. O campo personalizado otpoauth
será removido e não funcionará em versões futuras.
O aplicativo nativo e a extensão 0.5.1 não são compatíveis com a versão anterior. Certifique-se de que ambos sejam 0.5.1 para que funcionem corretamente.
O script nativePass
foi renomeado para chrome_pass
.
A versão 0.5.0 do chrome-pass usa setuptools em vez de distutils para empacotar e instalar o aplicativo nativo. Ao instalar você pode receber erros como:
ERROR: Cannot uninstall 'chrome-pass'. It is a distutils installed project and
thus we cannot accurately determine which files belong to it which would lead
to only a partial uninstall.
Nesta situação é necessário desinstalar manualmente as versões mais antigas do pacote:
nativePass
. Encontre-o usando which nativePass
.chrome_pass-0.X.0...
Se por algum motivo a extensão não conseguir obter a lista de nomes de usuário do seu armazenamento de senhas, os motivos mais prováveis são:
Foi descoberto que o aplicativo chrome_pass não consegue descriptografar as senhas gpg com algumas versões mais recentes do python-gnupg. Posso verificar se o plugin funciona sem problemas ao usar o módulo gnupg versão 0.3.9 encontrado por padrão no Ubuntu 16.04LTS.
Consulte o problema relacionado para obter detalhes em: Github.
Se o plug-in funcionar quando você inicia o Chrome a partir de um terminal, mas não funciona quando iniciado a partir do Spotlight ou de qualquer outro inicializador, certifique-se de que a variável de ambiente PATH esteja definida corretamente pelo inicializador.
Veja o problema relacionado para obter detalhes em: Github