Имейте в виду, что сервер имеет закрытый и открытый ключ, который полностью отделен от пары ключей, которую вы генерируете как пользователь. Закрытый ключ для сервера обычно хранится вместе с конфигурацией сервера, а открытый ключ передается сервером при попытке подключения. Ваш клиент сравнивает открытый ключ сервера с вашим файлом known_hosts. При правильном использовании это предотвращает атаки MITM.
У вас есть закрытый ключ для вашей личной учетной записи. Серверу нужен ваш открытый ключ, чтобы он мог подтвердить, что ваш закрытый ключ для учетной записи, которую вы пытаетесь использовать, авторизован.
Итак, используя ваш пример. И Боб, и Алиса имеют закрытые ключи и открытые ключи. Открытые ключи, которые были переданы ранее или как часть соединения, используются для проверки законности данных, зашифрованных с помощью закрытых ключей. Если у клиента нет открытого ключа или другой открытый ключ, вы получите страшное предупреждение. Если на сервере нет открытого ключа клиента, вы не сможете войти.