ssh
SSH fingerprint check
В моем не очень продвинутом понимании работы SSH, сервер, при своем первом старте, создает пару ключей, закрытый и открытый. Открытый ключ отсылается клиенту в момент установки соединения. Клиент, в свою очередь, при установки соединения создает отпечаток ключа (fingerprint) и сохраняет его у себя в файле known_hosts.
При каждом новом соединении он проверяет полученный при первом соединении отпечаток с тем. что был передан при новом соединении. Если они не отличаются, то все видимо хорошо. Если же они разные, то с большой вероятностью вы подключаетесь к хосту, который хочет выдать себя за кого-то другого.
В принципе эта проверка очень даже полезна, так как значительно снижает вероятность атаки “человек посередине”, но внутри собственной сети от нее часто больше бед, чем пользы. Уже несколько раз наталкивался в своей практике, как страдали бекапы через ssh от проверки fingerprint хоста. Как правило, такое происходит при переустановки ОС, смене доменного имени, или IP. Если машин немного – проблем особых нет, сам все вовремя отловишь. Но когда число серверов переваливает за второй десяток, да еще серверами и бекапами занимаются разные люди – быть беде.
Решение есть – не проверять fingerprint. Конечно же оно связано с определенным риском получить MITM, так что нужно сперва взвесить все плюсы и минусы. Реализация же очень простая:
ssh -o StrictHostKeyChecking=no host.ru
Можно еще запретить добавление fingerprint в known_hosts
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null host.ru
Источник: http://linuxcommando.blogspot.com
Использование аутентификации по публичному ключу в SSH.
Вы когда-нибудь смотрели логи попыток аутентификации по ssh? Каждый день сотни ботов рыскают по интернету, пытаясь подобрать пароль и от вашего сервера. Вам не страшно? У вас пароль из двенадцати символов в разном регистре из букв, цифр и специальных символов? Думаю нет, и в один прекрасный день может оказаться, что ваш сервер уже не только ваш.
Есть простой способ оставить ботов с носом, достаточно использовать аутентификацию по публичному ключу.
› Continue reading