Могу ли я использовать проверку ключей хоста ssh с циклическим DNS?

2503
Coderer

Я вхожу в сервер на основе имени хоста DNS циклического перебора - «login.example.com» может перейти на любой из нескольких серверов. В идеале я хотел бы иметь возможность обновить мой файл known_hosts так, чтобы доступ к любой из машин был возможен без предупреждения / ошибки, хотя я предполагаю, что запасной вариант был бы, если бы был какой-либо способ, чтобы все серверы имели одинаковый отпечаток / ключ хоста. Я видел сообщения, как это, но «выбрать один статический IP - адрес для входа в» это не вариант. Я бы хотел реальное решение, если оно есть.

3

3 ответа на вопрос

3
Spiff

Если вам не нужен безопасный способ различения машин, находящихся в циклическом кластере, просто скопируйте один ключ хоста на каждую из машин в кластере.

Это означает, что ваша проверка ключа хоста SSH точно скажет вам, что он находится в кластере, но не скажет вам точно, какой именно машиной в кластере он является. Вы можете полагаться на статический IP-адрес (или вывод hostname) как небезопасный способ различать машины в кластере.

1
Ghatothkach Yadav

Это то, что я нашел работы ...

  1. удалите все существующие записи для хоста в ~ / .ssh / known_hosts
  2. Получите полный список IP-адресов, на которые указывает хост, а затем укажите каждый IP-адрес ...
ssh-keyscan -H -t rsa 10.X.X.X >> ~/.ssh/known_hosts 

тогда вы не увидите проблему снова ... если вы используете имя хоста с

имя хоста ssh.

г

0
LassePoulsen

Нет действительно хорошего способа сделать это, так как ssh создан, чтобы убедиться, что нет риска подделки DNS. Тем не менее, вы можете использовать этот обходной путь:

ssh $(nslookup login.example.com | grep -v '#' | grep -m1 '^Address:' | cut -d \ -f 2) 

В основном это будет искать ip, а затем использовать IP-адрес вместо имени хоста, это должно устранить ваши проблемы, если сервер также не изменит IP-адреса.

Похожие вопросы