Как лучше всего добавлять известные ключи / отпечатки пальцев в known_hosts

На вопросы, подобные этому, есть много ответов, но я могу ' Кажется, я не нашел ни одного с четким ответом. Все они либо захватывают открытый ключ хотя бы один раз, либо полностью игнорируют ключ, либо записывают непосредственно в файл known_hosts (подразумевает отсутствие хэша)

У меня есть отпечаток и / или открытый ключ сервера. Я хотел бы, чтобы команда оболочки добавила его в клиентский файл known_hosts . Это должно использовать все, что настроено (hash / no-hash)

Кроме того, сценарий будет выполнять git pull с этого сервера, поэтому я не знаю, актуально ли предоставление информации о порте на этом этапе или нет. Скажите, пожалуйста.

Спасибо. И не стесняйтесь указывать мне правильное направление, если на этот вопрос уже был дан ответ, и я как-то его пропустил.

PS - Дополнительная информация: Одна из причин, по которой я спрашиваю о портах, заключается в том, что я сделал следующее безуспешно Я'user@my.awesome.host не сообщает мне об отпечатке пальца.

6
задан 19 August 2016 в 22:57
1 ответ

Имея открытый ключ, вы можете просто записать ключ в файл 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 не пробовал использовать приведенный выше сценарий, но вы сможете понять суть этого (и исправить опечатки, если они есть).

4
ответ дан 3 December 2019 в 00:35

Теги

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