When I switched to Linux in August of 2016, it took me a while to get everything set up the way I do now. That includes as getting as many games in my Steam library as possible to work on Linux. I used this little application called Steam Desktop Authenticator to generate 2 factor authentication codes, and it also allowed users to accept and deny trade confirmations, effectively replacing the terrible Steam mobile app.
SDA doesn't have a supported Linux version, although it's possible to run it on Linux via compiling it with mono, but that was a tedious process, and you couldn't accept or deny trade confirmations. That's a deal breaker for me since I (passively) trade TF2 items. So I set out to solve my problem.
About a week later I created steamguard-cli. I made this command line application to completely replace SDA. I tried to follow as many Linux conventions as possible, and to make it work well in scripts, but some things weren't possible because it was written in C#. Seriously, writing C# programs on Linux is a pain in the ass.
steamguard-cli can set up Steam accounts for 2FA, generate 2FA codes, and manage Steam trade confirmations.
You can find the latest version of steamguard-cli on the GitHub repo's releases page, with packages for Debian-based systems.
There is also an Arch Linux AUR.