На вопросы, подобные этому, есть много ответов, но я могу ' Кажется, я не нашел ни одного с четким ответом. Все они либо захватывают открытый ключ хотя бы один раз, либо полностью игнорируют ключ, либо записывают непосредственно в файл known_hosts (подразумевает отсутствие хэша)
У меня есть отпечаток и / или открытый ключ сервера. Я хотел бы, чтобы команда оболочки добавила его в клиентский файл known_hosts
. Это должно использовать все, что настроено (hash / no-hash)
Кроме того, сценарий будет выполнять git pull с этого сервера, поэтому я не знаю, актуально ли предоставление информации о порте на этом этапе или нет. Скажите, пожалуйста.
Спасибо. И не стесняйтесь указывать мне правильное направление, если на этот вопрос уже был дан ответ, и я как-то его пропустил.
PS - Дополнительная информация: Одна из причин, по которой я спрашиваю о портах, заключается в том, что я сделал следующее безуспешно Я'user@my.awesome.host не сообщает мне об отпечатке пальца.
Имея открытый ключ, вы можете просто записать ключ в файл known_hosts
и, возможно, повторно хешировать, если вам нужно:
HOSTNAME=my.awesome.host
PORT=7999
PUBKEY="ssh-rsa AAAAB3NzaC1yc2EAAAAD...E"
KNOWN_HOSTS="~/.ssh/known_hosts"
echo "[$HOSTNAME]:$PORT $PUBKEY" >> $KNOWN_HOSTS
# re-hash, if needed:
ssh -G -p $PORT $HOSTNAME | grep "hashknownhosts yes" && \
ssh-keygen -H -f $KNOWN_HOSTS
- Переключатель G
для ssh
довольно новый. Если это не сработает, вам нужно будет определить, следует ли хешировать известные хосты другим способом (или делать это независимо от условий).
Хеширование файла с уже хэшированными хостами не затрагивает эти строки.
I не пробовал использовать приведенный выше сценарий, но вы сможете понять суть этого (и исправить опечатки, если они есть).