python-yubico icon indicating copy to clipboard operation
python-yubico copied to clipboard

find_yubikey() fails with "Access denied (insufficient permissions)", even as root

Open jacobian opened this issue 11 years ago • 6 comments

$ sudo python -c 'import yubico; yubico.find_yubikey()'
Password:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/jacob/.virtualenvs/hkyubi/lib/python2.7/site-packages/yubico/yubikey.py", line 229, in find_key
    YK = YubiKeyUSBHID(debug=debug, skip=skip)
  File "/Users/jacob/.virtualenvs/hkyubi/lib/python2.7/site-packages/yubico/yubikey_usb_hid.py", line 141, in __init__
    if not self._open(skip):
  File "/Users/jacob/.virtualenvs/hkyubi/lib/python2.7/site-packages/yubico/yubikey_usb_hid.py", line 441, in _open
    self._usb_handle.claimInterface(self._usb_int)
  File "/Users/jacob/.virtualenvs/hkyubi/lib/python2.7/site-packages/usb/legacy.py", line 230, in claimInterface
    util.claim_interface(self.dev, if_num)
  File "/Users/jacob/.virtualenvs/hkyubi/lib/python2.7/site-packages/usb/util.py", line 191, in claim_interface
    device._ctx.managed_claim_interface(device, interface)
  File "/Users/jacob/.virtualenvs/hkyubi/lib/python2.7/site-packages/usb/core.py", line 112, in managed_claim_interface
    self.backend.claim_interface(self.handle, i)
  File "/Users/jacob/.virtualenvs/hkyubi/lib/python2.7/site-packages/usb/backend/libusb1.py", line 758, in claim_interface
    _check(self.lib.libusb_claim_interface(dev_handle.handle, intf))
  File "/Users/jacob/.virtualenvs/hkyubi/lib/python2.7/site-packages/usb/backend/libusb1.py", line 571, in _check
    raise USBError(_str_error[ret], ret, _libusb_errno[ret])
usb.core.USBError: [Errno 13] Access denied (insufficient permissions)

This is on OS X 10.9 ("Mavericks"), which I believe is important (I've found a few issues related to libusb on 10.9 that sound similar)

I'm running libusb-1.0.18 installed from Homebrew, PyUSB 1.0.0b1 installed from PyPI, and python-yubico 1.2. also installed from PyPI.

jacobian avatar Mar 03 '14 19:03 jacobian

This is a known issue with libusb on OSX: http://www.libusb.org/ticket/89 Until this is fixed I don't think there is anything we can do about it, unfortunately.

dainnilsson avatar Mar 04 '14 13:03 dainnilsson

Any idea on how to implement a workaround using HIDAPI as suggested in the linked thread? Doesn't look like the devs will fix it.

josepvalls avatar Jan 09 '16 21:01 josepvalls

As the "Yubikey Personalization Tool" is working on OSX, there must be some kind of workaround. Any chance this python module gets adapted accordingly?

Or someone is able to have a look into HIDAPI, as suggested in the thread posted above?

Thanks!

fhibler avatar Feb 12 '16 14:02 fhibler

YubiKey Personalization Tool doesn't use libusb on OSX, and thus is not affected by this issue. Adding a HIDAPI backend using https://pypi.python.org/pypi/hidapi is probably doable, but would require some effort. Contributions in this area are welcome!

dainnilsson avatar Feb 12 '16 14:02 dainnilsson

Updating this with a current link to why this still doesn't work (www.libusb.org doesn't respond for me): https://github.com/pyusb/pyusb/issues/208

Has there been an attempt to use this library instead? https://github.com/libusb/libusb Or does it need to have a BSD license?

Is there another programming language that has better MacOS support from Yubico?

zestysoft avatar Oct 24 '20 03:10 zestysoft

I also get the same usb.core.USBError: [Errno 13] Access denied (insufficient permissions) on Ubuntu 20.04 when calling find_yubikey

bsaund avatar Apr 28 '21 14:04 bsaund