Назад | Перейти на главную страницу

Как добавить известный хост SSH в сценарий bash?

Я создаю сценарий bash, чтобы подготовить новый сервер, на котором я могу развернуть веб-приложение. Одна вещь, которую я всегда должен делать, - это использовать GitHub в качестве известного хоста, используя ssh git@github.com. Как я могу автоматизировать этот процесс в сценарии bash и сделать это идемпотентным способом?

Самый простой способ - сделать что-то вроде этого.

ssh-keyscan remote_server >>~/.ssh/known_hosts

Если это новое поле, вам также может потребоваться создать ~/.ssh каталог перед запуском ssh-keyscan.

Имейте в виду, что ssh-keyscan может принимать произвольное количество имен хостов. Он получит все ключи, какие сможет.

Вы пытаетесь автоматизировать прием нового ключа? Если это так, вы можете использовать -oStrictHostKeyChecking = no.
Это очень плохая идея, поскольку теперь вы полностью открыты для атак типа «злоумышленник посередине».

Лучшим вариантом было бы просто управлять файлом known_hosts и повторно использовать этот файл при настройке новых серверов. Прикрепите его к github и напишите простой скрипт для загрузки этого файла перед загрузкой в ​​github.

Строгая проверка ключа хоста - это хорошо.

Я не уверен, что понимаю вопрос, но я думаю, что вы хотите игнорировать приглашение known_host или полностью избегать его, и в этом случае:

ssh -o StrictHostKeyChecking = нет

или другие предложения по адресу: http://www.joedog.org/2012/07/ssh-disable-known_hosts-prompt/