Я пытаюсь подключиться к компьютеру CentOS 7.5 (192.168.1.5) по технологии смарт-карт.
Теперь я могу использовать SSH, используя для этого сертификат x509 главного слота с соответствующим закрытым ключом, но это означает, что я должен поместить открытый ключ сертификата на каждую машину, на которой я хочу использовать SSH. Это утомительно, если вы спросите меня.
Поэтому я хочу использовать другой публичный / частный, в частности, ключи RSA, чтобы в будущем я мог подписать их Сертификатом RSA, позволяющим OpenSSH доверять Сертификату RSA, и предотвратить необходимость доверять каждому интеллектуальному устройству. Сертификат карты x509. Но сейчас я просто хочу SSH с этой парой ключей RSA со смарт-карты.
Поэтому я начал следовать типичным шагам, чтобы сгенерировать ключи и загрузить их на смарт-карту.
ssh-keygen -f gofish
ssh-keygen -f gofish.pub -e -m pem
ykman piv import-key 9c gofish
ykman piv generate-certificate 9c gofish.pem -s 'gofish543'
ssh-keygen -D [opensc-pkcs11.so] -e
- Разместите вывод этой команды на моей целевой машине CentOS.
ssh gofish543@192.168.1.5 -I [opensc-pkcs11.so]
Когда все работает, я перешел на Windows 10 с SST и PuTTY. Это когда все разваливается. Используя PuTTY-CAC для аутентификации SSH с помощью смарт-карты, он успешно загружает информацию о моей смарт-карте в представление, но когда я захожу в ssh, происходит сбой с ошибкой ...
Терминал PuTTY представляет следующее ...
Using username "gofish543".
Authenticating with public key "CAPI:5e084cb687f0c54adf8ddd733720db48407d3195" from agent
Server refused public-key signature despite accepting key!
gofish543@192.168.1.5's password:
С журналом ошибок sshd, показывающим следующее ...
debug1: matching key found: file /home/gofish543/.ssh/authorized_keys, line 1 RSA SHA256:Eor3aPxtNW6zrxLbq+1tB/urwql1CQB6EM8tFIx31+I^M
debug1: restore_uid: 0/0^M
debug3: mm_answer_keyallowed: key 0x55d310674760 is allowed^M
debug3: mm_request_send entering: type 23^M
debug3: mm_key_verify entering [preauth]^M
debug3: mm_request_send entering: type 24 [preauth]^M
debug3: mm_key_verify: waiting for MONITOR_ANS_KEYVERIFY [preauth]^M
debug3: mm_request_receive_expect entering: type 25 [preauth]^M
debug3: mm_request_receive entering [preauth]^M
debug3: mm_request_receive entering^M
debug3: monitor_read: checking request 24^M
key_verify: invalid argument^M
debug3: mm_answer_keyverify: key 0x55d310674710 signature unverified^M
debug3: mm_request_send entering: type 25^M
Failed publickey for gofish543 from 192.168.1.3 port 50051 ssh2: RSA SHA256:Eor3aPxtNW6zrxLbq+1tB/urwql1CQB6EM8tFIx31+I^M
Аутентификация с открытым и закрытым ключом распадается на строку key_verify: invalid argument
. Поиск этой проблемы дает ноль применимых результатов. Что я могу сделать, чтобы решить эту проблему?
В качестве дополнительного примечания, если я обнаружу в журналах ошибок что-либо, чего не должен был бы иметь, например информацию о закрытом или закрытом ключе, я знаю, что все эти машины находятся во внутренней сети, размещенной на ноутбуке, изолированном от Интернета. И эти ключи будут удалены через неделю или две.