Могу ли я использовать проверку ключей хоста ssh с циклическим DNS?
Я подключаюсь к серверу на основе циклического имени хоста DNS - "login.example.com" может перейти на любой из нескольких серверов. В идеале я хотел бы иметь возможность обновить мой файл known_hosts так, чтобы доступ к любой из машин был возможен без предупреждения / ошибки, хотя я предполагаю, что запасной вариант был бы, если бы был какой-либо способ, чтобы все серверы имели одинаковый отпечаток / ключ хоста. Я видел подобные сообщения, но "выбрать один статический ip для входа в систему" на самом деле не вариант. Я бы хотел реальное решение, если оно есть.
3 ответа
Если вам не нужен безопасный способ различения машин, находящихся в циклическом кластере, просто скопируйте один ключ хоста на каждую из машин в кластере.
Это означает, что ваша проверка ключа хоста SSH точно скажет вам, что он находится в кластере, но не скажет вам точно, какой именно машиной в кластере он является. Вы можете положиться на статический IP-адрес (или вывод hostname
) как небезопасный способ различать машины в кластере.
Нет действительно хорошего способа сделать это, так как ssh создан, чтобы убедиться, что нет риска подделки DNS. Тем не менее, вы можете использовать этот обходной путь:
ssh $(nslookup login.example.com | grep -v '#' | grep -m1 '^Address:' | cut -d \ -f 2)
В основном это будет искать ip, а затем использовать IP-адрес вместо имени хоста, это должно устранить ваши проблемы, если сервер также не изменит IP-адреса.
Это то, что я нашел работы...
- удалите все существующие записи для хоста в ~/.ssh/known_hosts
- Получите полный список IP-адресов, на которые указывает хост, а затем укажите каждый IP-адрес...
ssh-keyscan -H -t rsa 10.X.X.X >> ~/.ssh/known_hosts
тогда вы не увидите проблему снова... если вы используете имя хоста с
имя хоста ssh
г