Используйте PKCS#11 для SSH-подключения к серверу, чтобы сделать зависимость токена
я настроилPKCS#11
удаленное ssh-соединение на моем сервере Ubuntu, чтобы пользователи могли войти на него с помощью аппаратного токена, как описано здесь. Однако в этом случае пользователь может войти на сервер, удалить токен и передать его кому-то другому для входа. Я хочу ограничить пользователя таким образом, чтобы, когда он удаляет токен, он больше не мог поддерживать соединение с моим сервером (или через короткое время). Например, я хочу настроить постоянную зависимость от токена. Необходимо ли разрабатывать конкретный SSH-клиент? В настоящее время я использую Putty-CAC в качестве клиента.
1 ответ
Нет, это невозможно без модификаций клиента — аутентификация пользователя в SSH выполняется только один раз за все соединение и в первую очередь инициируется клиентом.
SSHv2 поддерживает смену ключей , которая может даже быть инициирована сервером, но она создает зависимость только от пары ключей «хоста» сервера, а не от пользователя.
Хотя механизм «gssapi-keyex» может быть исключением, поскольку он объединяет аутентификацию пользователя Kerberos с методом обмена ключами и, следовательно, зависит от наличия у пользователя билетов Kerberos с неистекшим сроком действия, но если вы используете PKCS#11, то это не так. с помощью Кербероса.
(Я также мог бы подумать о хаке, который включает загрузку вашего токена PKCS#11 в Pageant-CAC (агент ключей SSH PuTTY), а затем включение «пересылки агента» SSH, чтобы сервер мог периодически запрашивать подписи у пересылаемого агента... но это, конечно, имеет огромный недостаток: злонамеренные серверы могут злоупотреблять токеном PKCS#11 с помощью той же функции «пересылки агента».)
Может быть, рассматривать это как проблему политики компании и налагать последствия на совместное использование учетных записей.