Nenhum dispositivo / dev / hidraw quando eu conecto um Yubikey

4

Eu tenho um NEO do Yubikey e estou tentando fazer com que ele funcione no Debian.

Quando eu o conecto, recebo eventos do udev, mas não / dev / hidraw? dispositivo.

Aqui está o que eu sei até agora:

cat /boot/config-$(uname -r) | grep CONFIG_HIDRAW) dá:

CONFIG_HIDRAW=y

lsusb -v -d 1050:0211 dá:

Bus 002 Device 013: ID 1050:0211 Yubico.com 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1050 Yubico.com
  idProduct          0x0211 
  bcdDevice            0.20
  iManufacturer           1 Yubico
  iProduct                2 Yubico WinUSB Gnubby (gnubby1)
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower               30mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

Se eu executar udevadm monitor ao conectar e desconectar o Yubikey, obtenho:

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[7941.975349] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
KERNEL[7941.975583] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
UDEV  [7941.985350] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
UDEV  [7942.998352] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
KERNEL[7945.487692] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
KERNEL[7945.487791] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
UDEV  [7945.488139] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
UDEV  [7945.488620] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)

Eu adicionei as regras do udev, conforme recomendado aqui e cat /etc/udev/rules.d/70-u2f.rules dá:

ACTION!="add|change", GOTO="u2f_end"

#KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", TAG+="uaccess"
ATTRS{idVendor}=="1050", GROUP="plugdev", MODE="0660"


LABEL="u2f_end"

(Isso também não funcionou quando a linha comentada foi descomentada.)

Eu tentei instalar libhidapi-hidraw0 , mas isso também não funcionou.

Eu também tentei instalar e rodar o gerenciador Yubikey NEO, mas tanto ele como a ferramenta de personalização yubikey não acham que algum dispositivo Yubikey está conectado, e por isso eu acho que o bloqueador é a falta de um / dev / hidraw0 dispositivo (ou algo similar).

Eu alcancei os limites tanto do meu conhecimento sobre Linux quanto da minha capacidade de buscar soluções no Google, por isso as duas outras sugestões de depuração e (se você conhece) soluções seriam úteis.

    
por Sam Mussmann 01.03.2015 / 00:01

2 respostas

1

Parece-me que o arquivo /etc/udev/rules.d/70-u2f.rules está desatualizado ou, pelo menos, substituído por um arquivo em /lib/udev/rules.d/ . Se você instalou o pacote de personalização yubikey, deve haver um arquivo /lib/udev/rules.d/69-yubikey.rules . Abra o arquivo e adicione o ID do seu dispositivo de teste (0x0210) à lista de idVendors conhecidos. Você deve acabar com algo que se parece com isso. Isto é do lobisomem wily ubuntu, outras versões do sistema operacional podem ser ligeiramente diferentes, a chave é adicionar 0211 à lista de IDs de produto:

ACTION!="add|change", GOTO="yubico_end"

# Udev rules for letting the console user access the Yubikey USB
# device node, needed for challenge/response to work correctly.

# Yubico Yubikey II
ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010|0110|0111|0114|0116|0211|0401|0403|0405|0407|0410", \
    ENV{ID_SECURITY_TOKEN}="1"

LABEL="yubico_end"

Em seguida, você precisa recarregar as regras do udev com sudo udevadm control --reload-rules , depois remover e reinserir sua chave. Isso foi o suficiente para que funcionasse para mim.

    
por 25.11.2015 / 06:43
0

Você deve ser cuidadoso de onde obter seus Yubikeys, já que alguns de segunda mão vêm da equipe de testes do Google. Eles não funcionarão com a versão atual do gerenciador NEO ou da ferramenta Personalização.

Os dispositivos 0x02xx são dispositivos de teste.

Se você pedir ajuda ao yubikey, e fornecer o ID do dispositivo, e como você adquiriu o referido dispositivo (provavelmente eBay) por experiência pessoal, eles estarão dispostos a enviar o RMA gratuitamente e enviar um novo para você. seu centavo. Seus resultados podem variar.

Boa sorte!

    
por 04.03.2015 / 03:25

Tags