Я вхожу в Debian box и получаю предупреждение безопасности, показывающее мне открытый ключ хоста. Когда я сравниваю полный открытый ключ, сообщенный PuTTY, с тем, что в ~/.ssh/authorized_keys, я обнаруживаю, что они не совпадают.
Меня подвергли MITM или я чего-то не понимаю?
решение1
Мне не ясно, какую роль играет закрытый ключ /etc/ssh/ssh_host_${type}_key в соединении. Не ясно, как помогает то, что сервер отправляет мне открытый ключ, когда злоумышленник может просто проверить, какой открытый ключ отправляется с атакуемого сервера, вмешаться и просто подделать тот же самый открытый ключ.
Чтобы было ясно, сервер на самом деле не пересылает вам ваш открытый ключ обратно. Сервер имеетсвой собственныйсовершенно отдельный ключ, который он вам посылает – «ключ хоста». Как публичная, так и приватная части ключа хоста хранятся в /etc/ssh.
Сервер нетолькоотправить открытый ключ; он также отправляетподписьсоздано с использованием соответствующего закрытого ключа, который клиент может использовать в качестве доказательства. (Подписываемые данные уникальны для каждого соединения.) Злоумышленник может отправить тот же открытый ключ, но не сможет создать подпись.
Аналогичным образом работают сертификаты в SSL/TLS (HTTPS и т. п.).
Ваш собственный ключ аутентификации также проверяется сервером таким же образом, то есть PuTTY не только отправляет ваш открытый ключ, но и использует ваш закрытый ключ для подписи сообщения, так что кто-то другой не сможет войти в систему от вашего имени, просто просмотрев ваш файл authorized_keys.