Автоматизировать добавление хоста и IP к известным хостам

1016
Andrea Sciamanna

Я хотел избавиться от некоторых предупреждений, которые я получаю, когда запускаю автоматизированную среду сборки (точнее, Scrutinizer-CI).

Копаясь здесь, я нашел это решение, которое я могу добавить к сценарию, который готовит контейнер:

ssh-keyscan -H -p 1234 domain.tld >> ~/.ssh/known_hosts

Похоже, это не лучший способ сделать это. Не уверен, что это вопрос безопасности или что-то, но предупреждения о хосте исчезли.

Проблема в том, что я все еще получаю предупреждение для IP-адреса, к которому разрешен домен.

Я думаю, что это будет единственной проблемой ssh-keyscan -H -p 1234 123.231.321.213 >> ~/.ssh/known_hosts

Но что, если я не знаю IP, или если хост не всегда разрешает один и тот же IP?

Есть какая-то команда / скрипт, который я мог бы написать, чтобы разрешить IP и передать его вышеупомянутому скрипту?

0

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

1
Rich Alloway - RogueWave

Вы можете использовать digдля получения IP-адресов, а затем передать их ssh-keyscan.

Пример с xargs:

dig -t a +short www.yahoo.com | grep ^[0-9] | xargs -r -n1 ssh-keyscan -H -p 1234 >> ~/.ssh/known_hosts 

Пример с циклом for:

for ip in $(dig -t a +short www.yahoo.com | grep ^[0-9]); do ssh-keyscan -H -p 1234 $ip; done >> ~/.ssh/known_hosts 

Богатый Аллоуэй (RogueWave)

Можете ли вы объяснить, почему мне нужно использовать `| grep ^ [0-9] | xargs -r -n1`? Используя один или другой пример, я получаю кучу ошибок. Вместо этого, используя `ssh-keyscan -H -p 10022 $ (dig -ta + short domain.tld)` я получаю то, что кажется правильным результатом. На самом деле просто `dig -ta + short domain.tld` возвращает один IP-адрес. Andrea Sciamanna 7 лет назад 0
Я хотел упомянуть вас, но, видимо, я потерпел неудачу: это вторая попытка :) @RichAlloway Andrea Sciamanna 7 лет назад 0
Нет проблем @AndreaSciamanna! `| grep ^ [0-9] `использует только IP-адреса, возвращаемые dig (если имя хоста начинается с цифры, потребуется изменить grep для лучшей идентификации IP-адресов). При тестировании с www.yahoo.com я получаю два IP-адреса и 'fd-fp3.wg1.b.yahoo.com.', Который является CNAME для www.yahoo.com, в выводе dig. ssh-keyscan, кажется, ведет себя с завершающим периодом, но я хотел исключить CNAME. `| xargs -r -n1` создает одно выполнение ssh-keyscan для каждого результата, но не выполняет ssh-keyscan вообще, если результатов нет. Rich Alloway - RogueWave 7 лет назад 1

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