Docs/ Segurança/ Autenticação e 2FA

Autenticação e 2FA

Proteja sua instância sh0 com login por senha ou Google OAuth, e adicione uma camada extra de proteção com autenticação de dois fatores.

Métodos de Login

O sh0 oferece dois métodos de login para pessoas. Ambos abrem a mesma sessão do painel; programas usam chaves de API.

Autenticação por Senha

O método padrão. Não há credenciais padrão: a primeira conta é criada na tela de configuração de uma instalação nova, e qualquer outra conta é convidada por um administrador.

A troca de login, os cookies de sessão e a etapa de dois fatores estão descritos para desenvolvedores em Autenticação da API.

Página de login do sh0 com campos de e-mail e senha

Google OAuth

Para usuários do sh0 Cloud, o Login com Google está disponível como método de login. Isso usa o fluxo OAuth 2.0 do Google com verificação de token ID via JWKS.

  1. Clique em Entrar com Google na página de login.
  2. Autentique-se com sua conta Google.
  3. O sh0 verifica o token ID e cria ou vincula sua conta.
Página de login com botão de Login com Google
Note
Para instâncias auto-hospedadas, o Google OAuth requer a configuração de um projeto Google Cloud com credenciais OAuth. Veja Configurações → Autenticação para inserir seu Client ID e Client Secret.

Habilitando Autenticação de Dois Fatores

A autenticação de dois fatores (2FA) adiciona uma camada extra de segurança exigindo uma senha de uso único baseada em tempo (TOTP) além das suas credenciais normais.

  1. Abra sua página de Perfil no painel.
  2. Clique em Ativar 2FA.
  3. Escaneie o QR code com um aplicativo autenticador (Google Authenticator, Authy, 1Password, etc.).
  4. Insira o código de 6 dígitos do seu aplicativo autenticador para verificar a configuração.
  5. Salve seus códigos de backup em um local seguro.
Tela de configuração de 2FA mostrando QR code e campo de verificação

Uma vez habilitado, todo login exigirá o código TOTP de 6 dígitos após inserir seu e-mail e senha.

Warning
Se você perder o aplicativo autenticador e os códigos de backup, recupere a conta pelo próprio servidor, sem fazer login. O comando redefine a senha, desativa a autenticação de dois fatores e revoga todas as sessões abertas:
Terminal (on the server)
sudo sh0 users reset-password [email protected] --disable-2fa
Output
Password reset for [email protected] (318a52d95557639444c765ea8de8b0f5)

Revoked 14 refresh token(s). Sessions already open are rejected on their next request -- they are not left alive until their access token expires.

Sem --password, uma senha temporária aleatória é gerada e exibida. Entre com ela, escolha uma nova senha e ative a autenticação de dois fatores novamente.

Códigos de Backup

Ao ativar a 2FA, o sh0 gera 20 códigos de backup de uso único e armazena apenas o hash deles. Cada código pode substituir uma vez o código de 6 dígitos se você perder o acesso ao aplicativo autenticador.

Danger
Armazene seus códigos de backup em um local seguro e offline (gerenciador de senhas, papel impresso em um cofre). Esses códigos são seu único método de recuperação se perder seu dispositivo autenticador. Eles são mostrados apenas uma vez durante a configuração do 2FA.

Você pode regenerar os códigos de backup na sua página de Perfil com Regenerar códigos de backup. Você confirma com um código de 6 dígitos atual, e todos os códigos anteriores deixam de funcionar.

Alterando Sua Senha

Para alterar sua senha:

  1. Abra sua página de Perfil.
  2. Vá até a seção Senha.
  3. Insira sua senha atual e a nova senha.
  4. Confirme a nova senha e salve.
Formulário de alteração de senha nas configurações de perfil

Senhas são hasheadas com Argon2id antes do armazenamento. O sh0 impõe um comprimento mínimo de senha de 8 caracteres.

Tip
Alterar a senha encerra imediatamente todas as outras sessões: quem tinha sua senha antiga perde o acesso na hora.

Gerenciamento de Sessão

Uma sessão do painel dura 24 horas e se renova enquanto você continua usando o painel; uma sessão sem uso por 30 dias termina. Não há lista de sessões para gerenciar: para encerrar todas as sessões de uma conta, altere a senha dela ou execute no servidor o comando de recuperação acima.