Yubico / yubioath-flutter

Yubico Authenticator for Desktop (Windows, macOS and Linux) and Android
https://developers.yubico.com/yubioath-flutter/
Apache License 2.0
1.01k stars 137 forks source link

"No YubiKey detected." on built-from-source Linux 4.3.0 #224

Closed replaid closed 6 years ago

replaid commented 6 years ago

Steps to reproduce

  1. Open yubioath-desktop, either from the command line or through the application launcher.
  2. See message "No YubiKey detected."
  3. Insert YubiKey into a USB port.

Expected result

Some behavior involving the "No YubiKey detected." message disappearing.

Actual results

The message remains with no changes in the app whatsoever.

Other info

This YubiKey works with the corresponding app on my Mac, and is recognized by the personalization tool on this Linux machine. See #223 for more back story in case helpful.

replaid commented 6 years ago

The above happened with the 4.3.0 source download. I just reproduced with 96d11c2f9004640c3781477705b1fa07e85e1e8a.

emlun commented 6 years ago

Thanks for reporting. What terminal output do you get if you run yubioath-desktop --log-level DEBUG?

replaid commented 6 years ago

Thanks for your quick reply. I get the exact same behavior and zero terminal output when I run that command.

emlun commented 6 years ago

That's strange. Do you have the YubiKey Manager python library (ykman) installed?

replaid commented 6 years ago

Doesn't look like it.

$ python -c "import ykman"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named ykman
$ echo $?
1
emlun commented 6 years ago

Sorry, I forgot to mention it's a Python 3 library, so please check that too. If you don't have it, then that's at least one problem. It's still strange that you don't get any terminal output at all from yubioath-desktop, but I have no idea what might be causing that.

YubiKey Manager is included in the vendor/yubikey-manager directory in the source tarball, and those sources were enough for me to build the yubikey-manager and python3-yubikey-manager packages on Debian Buster:

$ cd vendor/yubikey-manager
$ debuild -us -uc
$ sudo dpkg -i ../python3-yubikey-manager_0.5.0_all.deb

After installing python3-yubikey-manager, the yubioath-desktop binary built by qmake && make successfully detects my YubiKey in Debian Buster.

Does any of that help?

replaid commented 6 years ago

Thank you for that information, which supplied the clues I needed. I now have a working Yubico Authenticator app after spending several hours on this project.

I needed to fulfill many further dependencies to get those commands to run. Here is what went down, as an experience report for the next person who has to slash through this jungle.

11:59 $ cd vendor/yubikey-manager/
12:12 $ debuild -us -uc
debuild: command not found
12:13 $ sudo apt-get install debuild
...
E: Unable to locate package debuild
12:13 $ # search the Internet for an incantation...
12:17 $ sudo apt-get install devscripts
...
Fetched 45.0 MB in 16s (2,667 kB/s)
...
12:18 $ debuild -us -uc
...
dpkg-checkbuilddeps: error: Unmet build dependencies: python-all python3-all python-setuptools python3-setuptools python-usb python3-usb python-pyscard python3-pyscard python3-cryptography python-click python3-click python3-openssl
...
12:18 $ sudo apt-get install python-all python3-all python-setuptools python3-setuptools python-usb python3-usb python-pyscard python3-pyscard python3-cryptography python-click python3-click python3-openssl
...
Fetched 1,555 kB in 1s (783 kB/s)
...
12:20 $ debuild -us -uc
...
12:22 $ sudo dpkg -i ../python3-yubikey-manager_0.5.0_all.deb
...
dpkg: dependency problems prevent configuration of python3-yubikey-manager:
 python3-yubikey-manager depends on libu2f-host0; however:
  Package libu2f-host0 is not installed.
...
12:23 $ sudo apt-get install libu2f-host0
...
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 libu2f-host0 : Depends: libhidapi-hidraw0 (>= 0.8.0~rc1+git20140201.3a66d4e+dfsg) but it is not going to be installed
                Recommends: libu2f-udev but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
12:23 $ sudo apt-get install libhidapi-hidraw0
...
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 python3-yubikey-manager : Depends: libu2f-host0 but it is not going to be installed
...
12:23 $ sudo apt --fix-broken install
...
Fetched 46.7 kB in 0s (52.5 kB/s)
...
12:24 $ sudo dpkg -i ../python3-yubikey-manager_0.5.0_all.deb

So the defect here is at least the documentation bug of omitting the commands you provided in your last comment.

Thanks again for your assistance.

emlun commented 6 years ago

Glad to hear you got it working. Thanks for your input on the build documentation, I'll close this and track improving the documentation in #223.

zpeterg commented 2 years ago

I was getting similar zero-output on ykman oath accounts list after an install of yubikey-manager 4.0.7 via ubuntu (apt install yubikey-manager). It worked via USB, but not USB-C. @replaid's notes above led me to try installing libu2f-host0 and that fixed it like a charm.