
Я создаю скрипт bash для подготовки нового сервера, на котором я могу развернуть веб-приложение. Одна вещь, которую я всегда должен делать, это использовать GitHub как известный хост, используя . Как я могу автоматизировать этот процесс в скрипте bash и сделать это идемпотентным способом?ssh [email protected]
решение1
Самый простой способ — сделать что-то вроде этого.
ssh-keyscan remote_server >>~/.ssh/known_hosts
Если это совершенно новый ящик, вам также может потребоваться создать каталог ~/.ssh
перед запуском.ssh-keyscan.
Имейте в виду, что ssh-keyscan может принимать произвольное количество имен хостов. Он получит все ключи, которые сможет.
решение2
Вы пытаетесь автоматизировать принятие нового ключа? Если да, то вы можете использовать -oStrictHostKeyChecking=no.
Это очень плохая идея, так как теперь вы полностью открыты для атак типа «человек посередине».
Лучшим вариантом было бы просто управлять файлом known_hosts и повторно использовать этот файл при предоставлении новых серверов. Прикрепите его на github и напишите простой скрипт для загрузки этого файла перед ssh-заходом на github.
Строгая проверка ключа хоста — это хорошо.
решение3
Я не уверен, что понял вопрос, но мне кажется, что вы хотите проигнорировать приглашение known_host или вообще его избежать, в этом случае:
ssh -o StrictHostKeyChecking=нет
или другие предложения по адресу:http://www.joedog.org/2012/07/ssh-disable-known_hosts-prompt/