a2fa

module
v0.16.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 12, 2023 License: Apache-2.0

README

a2fa

a2fa ("annoying two-factor authentication") is a command line tool for generating and validating one-time password.

Introduction

a2fa means annoying two-factor authentication. Its purpose is to get rid of phones and be able to authenticate easily. It keeps synced with Google Authenticator, Microsoft Authenticator.

Description:

  • An easy-to-use substitute for 2FA apps like TOTP Google authenticator.
  • Supports the OATH algorithms, such as TOTP and HOTP.
  • No need for network connection.
  • No need for phone.

Installation instructions

Linux

One-liner bash script to install a2fa

sudo -v ; curl https://raw.githubusercontent.com/csyezheng/a2fa/main/scripts/install.sh | sudo bash
macOS

One-liner bash script to install a2fa

sudo -v ; curl https://raw.githubusercontent.com/csyezheng/a2fa/main/scripts/install.sh | sudo bash
Windows

One-liner PowerShell script to install a2fa

Invoke-Expression "& { $(Invoke-RestMethod 'https://raw.githubusercontent.com/csyezheng/a2fa/main/scripts/install.ps1') }"
Manual installation and more

Please see the installation

Usage

a2fa [command] [flags] [args]
Available Commands:
  add         Add account and its secret key
  completion  Generate the autocompletion script for the specified shell
  generate    Generate one-time password from secret key
  help        Help about any command
  list        List all added accounts and password code
  remove      Remove account and its secret key
  update      Add account and its secret key
  version     show version
a2fa generate [flags] <secret key>
a2fa add [flags] <account name> <secret key>
a2fa remove <account name> [user name]
a2fa update [flags] <account name> <secret key>
a2fa list [account name]

Commonly used flags

Flags:
  -b, --base32         use base32 encoding of KEY instead of hex (default true)
  -c, --counter int    used for HOTP, A counter C, which counts the number of iterations
  -e, --epoch int      used for TOTP, epoch (T0) which is the Unix time from which to start counting time steps
  -H, --hash string    A cryptographic hash method H (SHA1, SHA256, SHA512) (default "SHA1")
  -h, --help           help for generate
  -i, --interval int   used for TOTP, an interval (Tx) which will be used to calculate the value of the counter CT (default 30)
  -l, --length int     A HOTP value length d (default 6)
  -m, --mode string    use use time-variant TOTP mode or use event-based HOTP mode (default "totp")

Examples

Generate code

Generate a time-based one-time password but do not save the secret key

a2fa generate ADOO3MCCCVO5AVD6

Generate a counter-based one-time password with counter 1

a2fa generate -m hotp -c 1 ADOO3MCCCVO5AVD6
Add account

Add an account named GitHub

a2fa add GitHub ADOO3MCCCVO5AVD6

Add an account, the account name is GitHub, the user name is csyezheng

a2fa add GitHub:csyezheng ADOO3MCCCVO5AVD6
List acccount

List all accounts

a2fa list 

List all accounts named GitHub

a2fa list GitHub

List accounts whose account name is GitHub and whose username is csyezheng

a2fa list GitHub:csyezheng

List accounts whose account name is GitHub and whose username is csyezheng

a2fa list GitHub csyezheng
Remove accounts

Remove all accounts named GitHub

a2fa remove GitHub

Delete accounts whose account name is GitHub and whose username is csyezheng

a2fa remove GitHub csyezheng
Update acccount

Update the secret key of accounts which account name is GitHub

a2fa update GitHub 5BRSSSBJUWBQBOXE

Update the secret key of accounts which account name is GitHub and the username is csyezheng

a2fa update GitHub:csyezheng 5BRSSSBJUWBQBOXE

Reporting issues

If you encounter any problems, you can open an issue in our bug tracker, please fill the issue template with as much information as possible.

Contributing

Refer to CONTRIBUTING.md

License

Apache License 2.0, see LICENSE.

Directories

Path Synopsis
cmd
internal
fs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL