TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.7K subscribers
Post #1357 10.1K
Настройка Yubikey + WSL2 + SSH (Часть 1)

TL:DR Настраиваем подключение по ssh к серверам с yubikey, без паролей, физических приватных ключей и смс. Заодно покажу как с помощью хака прокидывать физические USB устройства в WSL машину, авось захочется тебе что-то другое прокинуть и поковырять.


Ставим YubiKey Manager, оно есть под все ОС, я буду ставить на винду и прокидывать ключ в WSL2. Под линукс это все работает из коробки, а вот с виндой + wsl 2— есть проблемы.

Вставляем Yubikey в USB, открываем Manager и проверяем, если всё ок, то ключ появляется. Дополнительно можно проверить в консоли командой: ykman info в ответ получен:

Device type: YubiKey 5 NFC
Serial number: 12345678
Firmware version: 5.7.4
Form factor: Keychain (USB-A)
Enabled USB interfaces: OTP, FIDO, CCID
NFC transport is enabled.


Предварительно в ключ нужно зашить PIN, делается это через тот же Yubikey Manager в разделе Application → FIDO2 → FIDO2 PIN. Забиваем PIN.

PIN можно установить из консоли винды, командой: ykman fido access change-pin. Но если есть морда, то быстрее и приятнее сделать это через морду.


Едем дальше. Прокинуть физический USB в WSL2 не так просто, но есть решение. Называется оно usbipd-win и позволяет прокинуть любую USB железяку внутрь пресловутого WSL2. Скачиваем установщик в разделе Releases и устанавливаем. Рутина.

Дальше еще интереснее. Открываем консоль PowerShell и запускаем:

usbipd list


И видим кучу устройств. Среди всего нужно найти Yubikey, у меня это:

3-2 1050:0407  USB-устройство ввода, Устройство чтения смарт-карт Micros...


Как я это понял? Да банально выткнул ключ из USB, прогнал команду, воткнул и снова прогнал, сравнил что появилось. А появилось именно это устройство, нам нужен его ID, у меня это 1050:0407.

usbipd bind --busid 3-2
usbipd attach --wsl --busid 3-2


Если вылезет ошибка, в большинстве случаев это виндовый фаервол. У меня установлена морда TinyWall, я его на время отключаю. Позже уже добавлю нужные правила.

Нахуя мне фаервол? Хочу держать под контролем софт, который у меня установлен, ну не нравится мне когда что-то утекает без моего ведома, тем более после «гугл приключений».


Так, теперь идем в WSL машину и выполняем sudo lsusb, если всё ок то увидим:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 1050:0407 Yubico.com Yubikey 4/5


Кайф! Что-то прокинулось. Но что? Терпение!

У меня в WSL живет ubuntu 24, доставляем необходимые пакеты:

sudo apt install -y yubikey-manager fido2-tools


Проверяем:

sudo ykman info

Device type: YubiKey 5 NFC
Serial number: 12345678
Firmware version: 5.7.4
Form factor: Keychain (USB-A)
Enabled USB interfaces: OTP, FIDO, CCID
NFC transport is enabled.

sudo fido2-token -L

/dev/hidraw1: vendor=0x1050, product=0x0407 (Yubico YubiKey)


Да сучка! Поздравляю, мы успешно прокинули USB железяку в WSL2. Нюансы! Кудаж без них. Сейчас ключ виден только руту, а нам надо обычному юзеру. Хакаем систему!

В WSL машине создаем файл /etc/udev/rules.d/99-yubikey.rules:

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


Не забываем вставить ID вендора и продукта, мы их выше уже получили и знаем.

Применяем:

sudo usermod -aG plugdev $USER
sudo udevadm control --reload-rules
sudo udevadm trigger


Всё, для чистоты эксперимента можешь открыть новую консоль и убедиться что рядовой юзер теперь в деле.

Теперь можем генерить ключ и подключаться к серверам.

Продолжение будет завтра, всё в один пост не влезло. Завтра рассмотрим генерацию SSH ключей и как пофиксить баги при фрикциях с USB.

🛠 #security #privacy

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
More from @bashdays
  1. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  2. Sep 21, 2026🧠Techlead в эпоху AI: новый взгляд с Podlodka TechLead Crew AI всё глубже входит в разраб…
  3. Sep 21, 2026Объектное хранилище в эпоху быстрых данных Объём данных, с которыми нужно работать, растёт…
  4. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
  5. Sep 11, 2026🤖 DevOps в эпоху AI трансформации: что работает уже сейчас! 17 сентября Сбер собирает Dev…
  6. Sep 9, 2026Всем привет, с вами TagdTagd! Я тут вынужденно перешёл на MAX. Просто Telegram перестал ра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →