Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Параметры стенда

IP сервера: 10.0.2.15

Имя удаленного пользователя: user

Первичная настройка U2F

Удостовериться, в работоспособности U2F через демо-портал.

Если токен не подает признаков жизни, то попробуйте, согласно инструкции, подключен к компьютеру, но светодиод не начинает мерцать и отсутствует реакция на нажатие кнопки, то надо согласно инструкции записать в файл /lib/udev/rules.d/70-u2f.rules следующее:

/lib/udev/rules.d/70-u2f.rules
Code Block
title
# Rutoken
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0a89", ATTRS{idProduct}=="0090", TAG+="uaccess"

Перзапустите браузер, извлеките и вставьте токен заново. И еще раз проверьте работоспособность через через демо-портал. Если аутентификация опять не прошла, то попробуйте перезапустить систему.

Установка OpenSSH

Нам необходим OpenSSH версии 8.2 и выше, причем как на сервере так и на клиенте. Для начала попробуйте установить нужную версию OpenSSH из репозиториев. Это можно сделать с помощью команд:

...

Если версия ниже 8.2, то тогда приступим к ssh из исходников

Сборка из исходников

Для начала установим зависимые пакеты

...

Для пользователей Red Hat также необходимо поставить установить пакет libfido2, который можно взять взять тут.

Скачаем последнюю версию OpenSSH из репозитория:

Code Block
languagebash
git clone https://github.com/openssh/openssh-portable
cd openssh-portable
git checkout V_8_2_P1

Для необходимо применить применить патч, который решает проблему с запуском ssh через systemctl

...

Code Block
languagebash
sshd -V

...

На сервере

После того как сборка прошла успешно, в первую очередь выставим аутентификацию с использованием публичных ключей. Для этого в файле /etc/ssh/sshd_config раскомментируем строку

/etc/ssh/sshd_config
Code Block
title
PubkeyAuthentication yes

Перезапускаем демона ssh и убедимся, что он запустился без ошибок

...

В Red Hat возможна проблема связанная с неизвестной опцией GSSAPIKexAlgorithms передаваемой в качетсве аргумента sshd. Для того чтобы это исправить, нужно в файле /etc/crypto-policies/back-ends/opensshserver.config удалить данный аргумент и его параметры. Также в этом же файле нужно в опции PubkeyAcceptedKeyTypes нужно дописать skдописать sk-ecdsa-sha2-nistp256@openssh.com,sk-ssh-ed25519@openssh.com для прддержки поддержки аутентификации через U2FТакже если в найстройках .

На клиенте

Создадим ключ на клиенте, требующий аутентификацию через U2F:

...

В процессе выполнения данной команды, токен был потребовать нажатие пользователя. Данный ключ запишется в файл внутри ФС, указанный вами, по умолчанию это $HOME/.ssh/id_rsa.pub Сгенерированный ключ копируем в файл ~/.ssh/authorized_keys лежащий на сервере

Попробуем осуществить аутентификацию (во время выполнения данной команды, должно быть взаимодействие с U2F):lo1ol@lo1ol-VirtualBox:

Code Block
languagebash
~/.ssh$ ssh

...

 user@10.0.2.15

...


The authenticity of host '10.0.2.15 (10.0.2.15)' can't be established.

...


ECDSA key fingerprint is SHA256:pQ4vwrTm8OwwI7uhzfbbmrvHTM5d1bvMI0j49Xr6McQ.

...


Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

...


Warning: Permanently added '10.0.2.15' (ECDSA) to the list of known hosts.

...


Last login: Thu Feb 27 00:08:43 2020 from 127.0.0.1

Как видно аутентификация прошла успешно