Система авторизации через SSH-ключи работает по принципу «замок–ключ». 1 Во время подключения по протоколу Secure Socket Shell (SSH) происходит несколько процессов: обмен открытыми ключами, верификация сообщений, аутентификация пользователя на право отправлять команды. 1
Алгоритм взаимодействия клиента и сервера при подключении с использованием SSH-ключа: 3
- Клиент выражает намерение установить соединение, то есть отправляет запрос по TCP-порту. 13
- Клиент и сервер проверяют данные о версиях SSH-протоколов. 13 С помощью этой информации можно понять, какую конфигурацию (версию протоколов и алгоритмы работы) использовать. 3
- Если нет противоречий, SSH-сервер отправляет пользователю открытый ключ. 1 Клиент должен дать ответ о доверии такому ключу. 1
- При положительном ответе стороны генерируют сеансовый ключ, который будет использоваться для симметричного шифрования канала. 34 Этот ключ существует, только пока существует канал (текущая сессия). 3
- Происходит аутентификация подключающегося устройства. 1 Клиент направляет другой стороне свой публичный ключ. 1 Сервер проверяет его по своему списку открытых SSH-ключей. 3
- Если совпадение найдено, сервер генерирует случайное число, шифрует его открытым ключом и отправляет обратно. 3
- Клиент расшифровывает сообщение закрытым ключом и отправляет полученные данные серверу. 3
- В случае совпадения присланного числа с первоначальным аутентификация признаётся успешной, и клиенту открывается доступ на сервер. 3
SSH-ключ состоит из двух ключей — открытого и закрытого. 13 Открытый ключ используется для шифрования данных при обращении к удалённому узлу, а закрытый (приватный) — для расшифровки сообщений. 3