Table of Contents | ||
---|---|---|
|
Введение
Здесь приводится инструкция по настройке доступа к удаленному серверу с помощью OpenSSH и Рутокен ЭЦП. Рутокен работает как с библиотекой librtpkcs11ecp.so
,
так и библиотекойopensc-библиотекой
pkcs11.so
из состава OpenSC.
Стенд
- Сервер Ubuntu 12.10 x86,
- Клиент Ubuntu 12.10 x86,
- Клиент Windows 710;
- Рутокен ЭЦП, отформатированный через Панель управления Рутокен.
Порядок действий для библиотеки librtpkcs11ecp.so
0. Проверка модели устройства
- Подключите USB-токен к компьютеру.
- Для определения названия модели USB-токена откройте Терминал и введите команду:
...
Убедитесь, что используете: Aktiv Rutoken ECP
1. Генерация ключей
Первый вариант
На сервере или любой клиентской *nix машине выполняем следующие действия:
...
1.2 Устанавливаем библиотеку librtpkcs11ecp.so
(http://www.rutoken.ru/support/download/pkcs/) в директорию /usr/lib/
1.3 Генерируем ключевую пару на Рутокен:
...
Code Block | ||
---|---|---|
| ||
$ sudo apt-get install libengine-pkcs11-openssl $ openssl OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/engines-1.1/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so OpenSSL> req -engine pkcs11 -new -key id_0:45 -keyform engine -x509 -out cert.cert -text -days 365 -text OpenSSL> exit |
...
На сервере или любой клиентской *nix машине выполняем следующие действия:
1.1 Устанавливаем opensc
. Важно, чтобы версия была не ниже, чем после коммита cb54ebf
, например 0.13.0rc1.
1.2 Библиотеку librtpkcs11ecp.so
помещаем в директорию /usr/lib/
...
Здесь пара 0:10 - это <слот>:<id>.
2. Настройка сервера
2.1 Устанавливаем openssh-server
:
...
2.2 Копируем на сервер содержимое полученного на шаге 1.4 (1.4 8 второй вариант) файла key.pub
в файл ~/.ssh/authorized_keys
(если такого файла нет, нужно его создать). Для файла с приватными ключами измените права доступа с помощью команды:
Code Block | ||
---|---|---|
| ||
$ chmod 0600 ~/.ssh/authorized_keys |
3. Настройка *nix-клиента
3.1 Устанавливаем opensc
и openssh-client
:
...
3.2 Устанавливаем библиотеку librtpkcs11ecp.so
(http://www.rutoken.ru/support/download/pkcs/) в директорию /usr/lib/
3.3 Вызываем
Code Block | ||
---|---|---|
| ||
ssh-agent -P /opt/aktivco/rutokenecp/amd64/* |
3.3 4 Подключаемся к серверу:
Code Block | ||
---|---|---|
| ||
ssh -I /usr/lib/librtpkcs11ecp.so <username>@<server> |
4. Настройка Windows-клиента
4.1 Устанавливаем драйверы Рутокен http://www.rutoken.ru/support/download/drivers-for-windows/.
4.2 В качестве SSH-клиента для Windows используем PuttySC. На вкладке SSH -> PKCS11 ставим галку напротив Attempt "PKCS#11 smartcard" auth, выбираем библиотеку rtPKCS11ECP.dll, затем токен и сертификат на токене. На вкладке Session указываем адрес сервера и имя пользователя (необязательно) и подключаемся.Начиная с Windows 10, можно использовать SSH через Командную строку или PowerShell, с указанием пути к нашей библиотеки rtPKCS11ECP.dll.
Code Block | ||
---|---|---|
| ||
ssh -I "C:\Windows\System32\rtPKCS11ECP.dll" <username>@<server> |
Порядок действий для библиотеки opensc-pkcs11.so
1. Настройка сервера
1.1 Устанавливаем openssh-server
:
...
1.5 Полученный результат копируем в файл ~/.ssh/authorized_keys
на сервере.
2. Настройка клиента
2.1 Устанавливаем opensc
и openssh-client
:
Code Block | ||
---|---|---|
| ||
$ sudo apt-get install opensc openssh-client |
2.2 Вызываем
Code Block | ||
---|---|---|
| ||
ssh-agent -p <путь до физического расположения (не symlink) opensc-pkcs11.so>/* |
2.3 Подключаемся к серверу:
Code Block | ||
---|---|---|
| ||
$ ssh -I /usr/lib/opensc-pkcs11.so <username>@<server> |
В случае подключения с использованием конфигурационного файла следует вместо параметра IdentityFile
добавить SmartcardDevice
со значением /usr/lib/librtpkcs11ecp.so
.