SSH - Как добавить хост в файл ssh/known_host
Файл known_hosts выглядит следующим образом:
[localhost]:8001 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpU
[10.18.60.198]:8001 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9
// key are trimmed at the end
Эти ключи добавляются через Eclipse IDE. Хотите узнать, каковы другие способы добавления хостов (IP) и их ключей в файл ssh / known_hosts.
Конкретно:- Как добавить ключ ssh-dss для любого хоста (IP) в файле known_hosts.
РЕДАКТИРОВАТЬ:-
Я использую JBoss BRMS, который использует git для проектов BRMS, поэтому во время клонирования проекта BRMS в Eclipse IDE через Git выдает следующую ошибку
Подлинность хоста localhost не может быть установлена.
Отпечаток ключа DSA - e2:2c:62 // обрезается.
Вы уверены, что хотите продолжить подключение?
Затем он автоматически добавляет ключ ssh-dss в файл known_hosts.
Итак, где найти этот ключ и добавить его вручную в файл knownhosts
3 ответа
Формат ~/.ssh/known_hosts
определяется OpenSSH. Другое программное обеспечение может вызывать OpenSSH (команда ssh) или иметь собственные реализации, которые не обязательно совместимы на 100%.
Формат OpenSSH known_hosts описан на странице справочника sshd(8), в разделе "Формат файла ssh_known_hosts". Он говорит, что это текстовый файл с одной строкой на пару хост-ключ:
Каждая строка в этих файлах содержит следующие поля: маркеры (необязательно), имена хостов, тип ключа, ключ в кодировке base64, комментарий. Поля разделены пробелами. […] Hostnames - это список шаблонов через запятую ('
*
' а также '?
'подстановочные знаки); каждый шаблон в свою очередь сопоставляется с именем хоста. […] Имя или адрес хоста могут быть заключены в '[
' а также ']
скобки затем следуют:
и нестандартный номер порта.
Чтобы автоматически добавить ключ для нового хоста, просто SSH к нему.
Чтобы вручную добавить ключ для нового хоста, 1) откройте файл known_hosts в текстовом редакторе и 2) добавьте ключ для нового хоста, следуя тому же формату. (Ключ должен соответствовать хосту, к которому вы подключаетесь. Вы можете запросить у хоста его ключ, используя ssh-keyscan -t <type> <address>
.)
Чтобы добавить ключ для всех хостов, используйте *
шаблон в качестве имени хоста, который будет соответствовать всем именам хостов и адресам. Чтобы добавить ключ для всех хостов на конкретном порту, используйте [*]:8001
в качестве имени хоста.
Например, вам нужно добавить 127.0.0.1 к известным_хостам:
ssh-keyscan -H 127.0.0.1 >> ~/.ssh/known_hosts
Для файла Docker я использую:
RUN apt-get update \
&& apt-get install -y \
ssh \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p ~/.ssh/ \
&& ssh-keyscan -H 192.168.12.31 >> ~/.ssh/known_hosts
Гдеapt-get install -y ssh
- сделать возможным использование ssh-keyscan в командной строке, затемrm -rf /var/lib/apt/lists/*
- очистка информации о загруженном пакете с помощью apt.
Попробуйте войти в свою цель, а затем введите yes, когда она попросит сохранить ключ.