Page tree

Versions Compared

Key

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

...

Code Block
languagebash
 ssh -I /usr/lib/librtpkcs11ecp.so <username>@<server>

Порядок действий для клиента на Windows

На сервере или любой клиентской *nix машине выполняем следующие действия:

1.1 Устанавливаем opensc. Важно, чтобы версия была не ниже, чем после коммита cb54ebf, например 0.13.0rc1.

1.2 Библиотеку librtpkcs11ecp.so помещаем в директорию /usr/lib/

1.3 Устанавливаем openssh-client и openssl:

Code Block
languagebash
$ sudo apt-get install openssh-client openssl          

1.4 Генерируем ключевую пару:

Code Block
languagebash
$ openssl genrsa -out keys.pem 2048

1.5 Создаем самоподписанный сертификат:

Code Block
languagebash
$ openssl req -new -key keys.pem -out cert.csr
$ openssl x509 -req -days 700 -in cert.csr -signkey keys.pem -out cert.cert

1.6 Перекодируем ключи и сертификат в DER-формат:

Code Block
languagebash
$ openssl rsa -inform PEM -in keys.pem -out keys.der -outform DER
$ openssl x509 -in cert.cert -out cert.der -outform der

1.7 Импортируем ключи и сертификат в DER-формате на Рутокен:

Code Block
languagebash
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y privkey -w keys.der --id 10 --label Rutoken1
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w cert.der --id 10 --label Rutoken1

1.8 Конвертируем открытый ключ на Рутокен в формат ssh:

Code Block
languagebash
 $ ssh-keygen -D /usr/lib/librtpkcs11ecp.so -I 0:10 >> key.pub

Здесь пара 0:10 - это <слот>:<id>.

2.1 На сервере устанавливаем openssh-server:

Code Block
languagebash
$ sudo apt-get install openssh-server

2.2 Содержимое полученного на шаге 1.8 файла key.pub копируем на сервер в файл ~/.ssh/authorized_keys (если такого файла нет, нужно его создать).

3.1 В качестве SSH-клиента на Windows машине используем PuttySC, на вкладке SSH -> PKCS11 ставим галку напротив Attempt "PKCS#11 smartcard" auth, выбираем библиотеку rtPKCS11ECP.dll, затем токен и сертификат на токене. На вкладке Sessions указываем адрес сервера и подключаемся.

Порядок действий для библиотеки opensc-pkcs11.so

...