No description
Find a file
mp 602acc6641
PKGBUILD: disabled link time optimization to avoid build errors (#385)
This solves build errors for me described in
https://aur.archlinux.org/packages/steamguard-cli-git#comment-884235 and
also reproduced in
https://github.com/dyc3/steamguard-cli/actions/runs/9340294638/job/25705683797

```
error: linking with `cc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/usr/lib64/rustlib/x86_64-unknown-linux-gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcWfC4he/symbols.o" "/var/ab/.cache/yay/steamguard-cli-git/src/steamguard-cli/target/release/deps/steamguard-22c99af53504a9e5.steamguard.7abfd362c63e99bf-cgu.13.rcgu.o" "-Wl,--as-needed" "-L" "/var/ab/.cache/yay/steamguard-cli-git/src/steamguard-cli/target/release/deps" "-L" "/var/ab/.cache/yay/steamguard-cli-git/src/steamguard-cli/target/release/build/ring-0dc12641040c6e8f/out" "-L" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/tmp/rustcWfC4he/libring-949bba2bc6e40fcb.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-3ce9c50abe6de474.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/var/ab/.cache/yay/steamguard-cli-git/src/steamguard-cli/target/release/deps/steamguard-22c99af53504a9e5" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs"
  = note: /usr/sbin/ld: /var/ab/.cache/yay/steamguard-cli-git/src/steamguard-cli/target/release/deps/steamguard-22c99af53504a9e5.steamguard.7abfd362c63e99bf-cgu.13.rcgu.o: in function `ring::aead::aes_gcm::aes_gcm_seal':
          steamguard.7abfd362c63e99bf-cgu.13:(.text._ZN4ring4aead7aes_gcm12aes_gcm_seal17hdce0b4a4f2d32350E+0xa9): undefined reference to `ring_core_0_17_8_OPENSSL_ia32cap_P'
```
2024-06-02 21:59:36 +00:00
.github ci: add workflow_dispatch trigger to aur-checker (#371) 2024-03-04 07:20:18 -05:00
.vscode add some unit tests (#234) 2023-06-26 16:44:14 +00:00
docs fix typo in quickstart 2023-06-24 15:52:36 -04:00
scripts update release script 2024-03-04 17:17:38 -05:00
src upgrade to clap v4 (#382) 2024-06-02 14:59:25 +00:00
steamguard Bump steamguard v0.14.0, steamguard-cli v0.14.0, safety bump steamguard-cli v0.14.0 2024-06-02 14:02:38 -04:00
.gitignore add check-aur.sh to check if the aur package works 2022-01-15 11:40:25 -05:00
Cargo.lock Bump steamguard v0.14.0, steamguard-cli v0.14.0, safety bump steamguard-cli v0.14.0 2024-06-02 14:02:38 -04:00
Cargo.toml Bump steamguard v0.14.0, steamguard-cli v0.14.0, safety bump steamguard-cli v0.14.0 2024-06-02 14:02:38 -04:00
LICENSE licensing and stuff 2021-08-25 08:36:02 -04:00
PKGBUILD PKGBUILD: disabled link time optimization to avoid build errors (#385) 2024-06-02 21:59:36 +00:00
README.md rename trade subcommand to confirm and deprecate trade subcommand (#368) 2024-03-04 06:56:48 -05:00
rustfmt.toml remove normalize_comments rustfmt rule (#316) 2023-09-10 21:22:23 +00:00

steamguard-cli

Lint, Build, Test AUR Tester

A command line utility for setting up and using Steam Mobile Authenticator (AKA Steam 2FA). It can also be used to respond to trade, market, and any other steam mobile confirmations that you would normally get in the app.

The only legitimate place to download steamguard-cli binaries is through this repo's releases, or by any package manager that is linked in this document.

Disclaimer

This utility is effectively in beta. Use this software at your own risk. Make sure to back up your maFiles regularly, and make sure to actually write down your revocation code. If you lose both of these, we can't help you, your only recourse is to beg Steam support.

Quickstart

If you have no idea what the rest of this document is talking about, go read the quickstart.

Features

  • Generate 2FA codes
  • Respond to trade, market or any other confirmations
  • Encrypted storage of your 2FA secrets
    • With the option to store your encryption passkey in the system keyring
  • Special memory-clearing data structures to prevent leaking secrets
  • QR code generation for importing 2FA secrets into other applications, like KeeWeb
  • QR code logins for quickly logging into Steam on a new device, like the Steam Deck
  • Able to read Steam Desktop Authenticator's maFiles format
  • Uses as many official Steam APIs as possible, unlikely to break

Install

If you have the Rust toolchain installed:

cargo install steamguard-cli

Arch-based systems can install from the AUR:

Otherwise, you can download binaries from the releases.

Building From Source

cargo build --release

Usage

steamguard-cli looks for your maFiles/manifest.json in at these paths, in this order:

Linux:

  • ~/.config/steamguard-cli/maFiles/
  • ~/maFiles/

Windows:

  • %APPDATA%\Roaming\steamguard-cli\maFiles\
  • %USERPROFILE%\maFiles\

Your maFiles can be created with or imported from Steam Desktop Authenticator. You can create maFiles with steamguard-cli using the setup action (steamguard setup).

REMEMBER TO MAKE BACKUPS OF YOUR maFiles, AND TO WRITE DOWN YOUR RECOVERY CODE!

Full helptext can be displayed with:

steamguard --help

One Liners

Generate and copy a new code to clipboard:

steamguard | xclip -selection clipboard

Importing 2FA Secret Into Other Applications

It's possible to import your 2FA secret into other applications. This is useful if you want to use a password manager to generate your 2FA codes, like KeeWeb.

To make this easy, steamguard-cli can generate a QR code for your 2FA secret. You can then scan this QR code with your password manager.

steamguard qr # print QR code for the first account in your maFiles
steamguard -u <account name> qr # print QR code for a specific account

There are some applications that do not generate correct 2fa codes from the secret, so do not use them:

  • Google Authenticator
  • Authy

Contributing

By contributing code to this project, you give me and any future maintainers a non-exclusive transferable license to use that code for this project, including permission to modify, redistribute, and relicense it.

License

steamguard-cli, the command line program is licensed under GPLv3.

steamguard, the library that is used by steamguard-cli is dual licensed under MIT or Apache 2.0, at your option.

Used By