Rutoken ECP 2.0 и OpenSSH

Здравствуйте. Может поможете?
Никак не получается завести связку. Установлена Ubuntu 16.10. Почти всё работает, не смог завести только gpg и openssh. С gpg хотяб никто не обещал даже что заработает, а вот с ssh... В общем пробовал с помощью http://developer.rutoken.ru/pages/viewp … Id=3440675 оба варианта, но в обоих случаях получаю

ssh -I /usr/lib/librtpkcs11ecp.so user@192.168.1.66
C_Initialize failed: 401
ssh-keygen -D /usr/lib/librtpkcs11ecp.so -I 0:10
C_Initialize failed: 401
cannot read public key from pkcs11

В общем теперь в ступоре.

Re: Rutoken ECP 2.0 и OpenSSH

здравствуйте,
мы конечно посмотрим поточнее, но по симптому уж очень похоже на эту проблему
http://developer.rutoken.ru/display/KB/LN1002
попробуйте пожалуйста

Re: Rutoken ECP 2.0 и OpenSSH

помогло?

Re: Rutoken ECP 2.0 и OpenSSH

Извините, что долго не отвечал, почему то не пришло письмо. Сегодня вечером посмотрю. С телефона ссылка не открывается.

Re: Rutoken ECP 2.0 и OpenSSH

К сожалению не помогло:

$ pkcs11-tool --test-fork --module /usr/lib/librtpkcs11ecp.so 
*** Calling C_Initialize in forked child process ***
error: PKCS11 function C_Initialize in child
 failed: rv = CKR_CRYPTOKI_ALREADY_INITIALIZED (0x191)

Aborting.
error: Child process exited with status 256
Aborting.
$ ssh-keygen -D /usr/lib/librtpkcs11ecp.so -I 0:10
C_Initialize failed: 401
cannot read public key from pkcs11

Re: Rutoken ECP 2.0 и OpenSSH

У нас ваша ситуация не воспроизводится.
Попробуйте воспользоваться утилитой pkcs11-spy для отладки вызовов pkcs11 которые происходят на вашей системе.
(утилита входит в состав opensc)

Re: Rutoken ECP 2.0 и OpenSSH

Пришёл ответ от OpenSC, ребята говорят:

The problem is in /usr/lib/librtpkcs11ecp.so.
librtpkcs11ecp.so can not handle being forked.
This is not an OpenSC problem.

Re: Rutoken ECP 2.0 и OpenSSH

Давайте уточню:
Ubuntu 16.10 x64

$ export PKCS11SPY=/usr/lib/librtpkcs11ecp.so; export PKCS11SPY_OUTPUT=/tmp/logfile; pkcs11-tool --test-fork --module /usr/lib/x86_64-linux-gnu/pkcs11-spy.so
*** Calling C_Initialize in forked child process ***
error: PKCS11 function C_Initialize in child
 failed: rv = CKR_CRYPTOKI_ALREADY_INITIALIZED (0x191)

Aborting.
error: Child process exited with status 256
Aborting.

$ cat /tmp/logfile
*************** OpenSC PKCS#11 spy *****************
Loaded: "/usr/lib/librtpkcs11ecp.so"

0: C_GetFunctionList
2017-02-07 09:25:53.344
Returned:  0 CKR_OK

1: C_Initialize
2017-02-07 09:25:53.344
[in] pInitArgs = (nil)
Returned:  0 CKR_OK

2: C_Initialize
2017-02-07 09:25:53.353
[in] pInitArgs = (nil)
Returned:  401 CKR_CRYPTOKI_ALREADY_INITIALIZED

3: C_Finalize
2017-02-07 09:25:53.354
Returned:  0 CKR_OK

Re: Rutoken ECP 2.0 и OpenSSH

Пришёл ответ от OpenSC, ребята говорят:
The problem is in /usr/lib/librtpkcs11ecp.so.
librtpkcs11ecp.so can not handle being forked.
This is not an OpenSC problem.

Эта проблема решается инструкцией, которую я вам ранее высылал. Она не чинит pkcs11-tool, но может починить openvpn и возможно openssh.

Но все таки у вас похоже другая проблема. Пришлите пожалуйста лог вызова openssh.

(2017-07-07 10:15:01 отредактировано kudashevPA)

Re: Rutoken ECP 2.0 и OpenSSH

Добрый день. Я новую тему создавать не буду. Задача так же, а вот ошибка другая.
при попытке записать ключевую пару на рутокен выдает ошибку:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y privkey -w keys.der --id 11 --label Rutoken1
PKCS11 function C_CreateObject failed: rv = CKR_ATTRIBUTE_VALUE_INVALID (0x13)

Как быть?

Distributor ID: Debian
Description:    Debian GNU/Linux 8.8 (jessie)
Release:        8.8
Codename:       jessie

OpenSSL 1.0.1t  3 May 2016

0: Aktiv Rutoken ECP 00 00
Fri Jul  7 11:13:54 2017
Reader 0: Aktiv Rutoken ECP 00 00
+ TS = 3B --> Direct Convention
+ T0 = 8B, Y(1): 1000, K: 11 (historical bytes)

Re: Rutoken ECP 2.0 и OpenSSH

Ключевая пара RSA или ГОСТ ?

(2017-07-08 00:19:12 отредактировано kudashevPA)

Re: Rutoken ECP 2.0 и OpenSSH

Кирилл Мещеряков пишет:

Ключевая пара RSA или ГОСТ ?

RSA.

Попробовал на другой станции организовать с той же ОС. Все получилось, но только по второму варианту. В первом варианте файл

/usr/lib/engines/engine_pkcs11.so

отсутствует. Я так понимаю, что это особенность Debian?
Я планировал авторизацию сделать еще на входе в ОС.

Под пунктом 8 в инструкции
Подгружаем модуль поддержки pkcs11:

engine dynamic -pre SO_PATH:/usr/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:opensc-pkcs11.so

И опять же ссылаемся на данный файл. Где его найти?
Все требуемые программы установил:

apt-get install pcscd opensc openssl libpam-p11 libengine-pkcs11-openssl

Re: Rutoken ECP 2.0 и OpenSSH

Вряд ли это особенность Debian, скорее небольшие различия в путях файлов.
Среди пакетов pcscd opensc openssl libpam-p11 libengine-pkcs11-openssl есть все необходимое, кроме libccid (но возможно его подтянул какой-то один из других пакетов).

По идее engine_pkcs11.so устанавливается как раз пакетом libengine-pkcs11-openssl
Может просто путь установки другой? Пробовали найти библиотеку через find -name / *pkcs11*
?

Кстати, ASAP мы рекомендуем пользоваться 1-м путем, через нашу библиотеку librtpkcs11ecp.so