Page tree

Versions Compared

Key

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

Table of Contents
outlinetrue
stylenone

Введение

В этой инструкции приводится порядок действий по настройке доступа к удаленному серверу с помощью OpenSSH и Рутокена ЭЦП. Более подробно можно прочитать здесь: http://www.gooze.eu/howto/using-openssh-with-smartcards

 

Для работы с Рутокен будем использовать библиотеку librtpkcs11ecp.so, также возможно использование библиотеки opensc-pkcs11.so.

Стенд

Описание стенда: 2 виртуальные машины Ubuntu 12.10 x86 –  сервер и клиент; Рутокен ЭЦП, отформатированный через Панель управления Рутокен.

Клиент:

Общий порядок действий для библиотеки librtpkcs11ecp.so

1. Клиент

1.1 1)      Устанавливаем необходимые для работы с Рутокен пакеты:

Code Block
languagebash
$ sudo apt-get install opensc          

 

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

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

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

2. Сервер:

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

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

3. Клиент:

3.1 5)      Генерируем ключевую пару на Рутокен:

Code Block
languagebash
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:

...

2048 -l --id 45

6)      3.2 Теперь с помощью утилиты ssh-keygen конвертируем открытый ключ на Рутокен в формат ssh:$

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

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

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

8)      3.4 Подключаемся к серверу:ssh

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

3.5 На этом все. 

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

Если для работы с Рутокен используется библиотека opensc-pkcs11.so, порядок действий будет следующим.

1. Клиент

1.1 Устанавливаем необходимые для работы с Рутокен пакеты:

Code Block

1)  Выполняем пункты 1, 3 и 4 из инструкции выше.

2)  Форматируем Рутокен:

...

languagebash
$ sudo apt-get install opensc          

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

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

2. Сервер

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

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

2.2 Форматируем Рутокен:

Code Block
languagebash
$ pkcs15-init --erase-card -p rutoken_ecp

...


$ pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk ""

...


$ pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin "12345678" --puk "" --so-pin "87654321" --finalize

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

Code Block
languagebash
$ pkcs15-init -G rsa/2048 --auth-id 02 --id 42

 

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

Code Block
languagebash
$ pkcs15-tool

...

 -read-ssh-key 42

Здесь 42 – это id ключа.

2.5 Полученный результат копируем в файл ~/.ssh/authorized_keys на сервере

3. Клиент

3.1 6)  Подключаемся к серверу:

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

...