...
Code Block |
---|
|
ssh -I /usr/lib/librtpkcs11ecp.so <username>@<server> |
Порядок действий для клиента на Windows
На сервере или любой клиентской *nix машине выполняем следующие действия:
1.1 Устанавливаем opensc. Важно, чтобы версия была не ниже, чем после коммита , например 0.13.0rc1.
1.2 Библиотеку librtpkcs11ecp.so
помещаем в директорию /usr/lib/
1.3 Устанавливаем openssh-client и openssl:
Code Block |
---|
|
$ sudo apt-get install openssh-client openssl |
1.4 Генерируем ключевую пару:
Code Block |
---|
|
$ openssl genrsa -out keys.pem 2048 |
1.5 Создаем самоподписанный сертификат:
Code Block |
---|
|
$ 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 |
---|
|
$ 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 |
---|
|
$ 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 |
---|
|
$ ssh-keygen -D /usr/lib/librtpkcs11ecp.so -I 0:10 >> key.pub |
Здесь пара 0:10 - это <слот>:<id>.
2.1 На сервере устанавливаем openssh-server:
Code Block |
---|
|
$ 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
...