Можно ли заставить клиента ssh не заботиться о том, за каким IP-сервером находится ssh-сервер (и если за этим IP-адресом ранее находился другой сервер), а вместо этого доверять определенным ключам сервера? (И, возможно, прозвали эти ключи?) Я использую динамический DNS, и у меня на некоторых компьютерах включены расширения конфиденциальности IPv6, и меня всегда спрашивают, считает ли это безопасным подключение. Другая возможность - это адреса, назначаемые DHCP, которые назначаются различным ssh-серверам и вызывают всевозможные ошибки «ключ не соответствует IP».
8
Ответы:
Добавьте псевдоним для вашего сервера в
~/.ssh/config
и отключитеCheckHostIP
для этого сервера.Перед первым подключением к серверу вы можете скопировать открытый ключ вне диапазона: захватить
/etc/ssh/ssh_host_rsa_key.pub
с сервера, удалитьroot@hostname
деталь в конце строки, добавитьexample.dyndns.org
в начале и добавить строку в~/.ssh/known_hosts
. При желании запуститеssh-keygen -H
для хеширования имени хоста (это полезно, только если вы беспокоитесь о конфиденциальности этой записи, если кто-то украл ваш жесткий диск или ваши резервные копии, что для 99,99% людей бесполезно, поскольку информация присутствует в некоторых других поблизости место в любом случае).источник
Host nickname
, значит ли это, что я могу простоssh nickname
так добраться до него? Если так, то это довольно аккуратно.В
/etc/ssh/ssh_config
добавьте строкуОднако это отнимает часть безопасности в SSH, потому что любая машина может прятаться за именем IP или DynDNS, к которому вы подключаетесь.
источник
CheckHostIP
, то нет, это не значит, что вы отказались от какой-либо защиты. ПриCheckHostIP no
этом спуфер все еще должен получить закрытый ключ сервера, и если она сможет это сделать, вряд ли она все равно сможет подделать его IP-адрес.sudo
или подобные.