2

Я хотел бы создать запись known_host, но по некоторым соображениям безопасности (разрешения) не могу добавить ее напрямую при появлении запроса на добавление.

Вы уверены, что хотите продолжить соединение (да / нет) -> не можете сказать Да

Интересно, есть ли способ сгенерировать запись (печать в командной строке), поэтому я могу поместить ее вручную в файл known_hosts. У меня есть отпечаток ключа RSA.

Перефразируя вопрос, могу ли я указать свой собственный файл записи known_host для генерации вышеуказанной записи?

Просто к вашему сведению:- У меня также есть доступ к команде ssh-keygen, ssh-keyscan и другие недоступны. Пожалуйста, прокомментируйте, если вышеуказанной информации недостаточно, и я могу ответить

2 ответа2

4

Вы можете использовать ключ -o для команды ssh, чтобы вручную указать альтернативный файл hosts:

$ ssh -o UserKnownHostsFile=~/known_hosts.txt myserver

Это поместит содержимое в known_hosts.txt в вашем домашнем каталоге, или вы можете изменить его на любое место, к которому у вас должны быть права на запись.

2

Если вы используете это:

ssh -o StrictHostKeyChecking=no server.example.net

Вы можете быть в состоянии избежать вопроса в целом, но ОСТОРОЖНО, делая это, вы избегаете важной проверки, которую использует SSH для проверки личности удаленного хоста. Вы упомянули, что у вас есть отпечаток пальца RSA. Проверьте это, когда используете эту опцию.

Вы спросили, как можно "сгенерировать" запись, которую вы добавили бы в файл known_hosts. Я предполагаю, что вы используете OpenSSH.

На каждом из серверов, к которому вы подключаетесь, вам нужно узнать, где находятся SSH-ключи удаленного хоста. В Linux и FreeBSD все должно быть в /etc/ssh/ . В OSX все настройки SSH, включая ключи, находятся в /etc/ . Если вы не уверены, вы сможете найти ключи с помощью:

find /etc/ -name ssh_host\*.pub -print

Скорее всего, у вас будут такие результаты:

/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_rsa_key.pub

Содержимое этих файлов на удаленных серверах можно дословно добавить в файл known_hosts, используемый вашим ssh-клиентом. И, очевидно, если вы обычно используете только один тип ключа, вам, вероятно, не нужно содержимое обоих файлов.

Другой вопрос, который вы задали, состоял в том, можно ли указать альтернативный файл known_hosts. Другой ответ на этот вопрос дает вам инструкции для этого.

Обратите внимание, что вы также можете указать альтернативный файл known_hosts, используя запись в файле ~/.ssh/config . Например:

host cloudhost*
    UserKnownHostsFile ~/.ssh/known_hosts_cloud

Это может работать для вас, если вы соберете все ключи хоста в именованный файл и будете иметь имена хостов, такие как cloudhost1, cloudhost2, ....

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .