SSH — Как добавить хост в файл ssh/known_host

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 //trimmed.
Вы уверены, что хотите продолжить подключение?

Затем он автоматически добавляет ключ ssh-dss в файл known_hosts.

Так где же найти этот ключ и добавить его вручную в файл knownhosts?

решение1

Формат ~/.ssh/known_hostsопределяется OpenSSH. Другое программное обеспечение может либо вызывать OpenSSH (сшcommand) или может иметь собственные реализации, которые не обязательно на 100% совместимы.

Формат OpenSSH known_hosts описан вСтраница руководства sshd(8), в разделе "формат файла ssh_known_hosts". Там написано, что это текстовый файл с одной строкой на пару хост-ключ:

Каждая строка в этих файлах содержит следующие поля: маркеры (необязательно), имена хостов, тип ключа, ключ в кодировке base64, комментарий. Поля разделяются пробелами. […] Имена хостов — это список шаблонов, разделенных запятыми (' *' и ' ?' действуют как подстановочные знаки); каждый шаблон в свою очередь сопоставляется с именем хоста. […] Имя хоста или адрес могут быть необязательно заключены в скобки ' [' и ' ]', за которыми следует ' :' и нестандартный номер порта.

Чтобы автоматически добавить ключ для нового хоста, просто подключитесь к нему по SSH.

Чтобы вручную добавить ключ для нового хоста, 1) откройте файл known_hosts в текстовом редакторе и 2) добавьте ключ для нового хоста, следуя тому же формату. (Ключ должен соответствовать хосту, к которому вы подключаетесь. Вы можете запросить ключ у хоста, используя ssh-keyscan -t <type> <address>.)

Чтобы добавить ключ длявсеhosts, используйте *шаблон в качестве имени хоста, который будет соответствовать всем именам хостов и адресам. Чтобы добавить ключ для всех хостовна определенном порту, используйте [*]:8001в качестве имени хоста.

решение2

Например, вам нужно добавить127.0.0.1в known_hosts:

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.

решение3

Попробуйте подключиться к целевой машине по SSH, а затем введите yes, когда система попросит сохранить ключ.

Связанный контент