2013-08-26 20 views
1

Странная проблема .. Я подозреваю, ошибка внутри SSH-keyscan но может быть им неправильно ..ssh не читает конкретную запись ssh-keyscan внутри .ssh/known_hosts?

ssh-keyscan -H -t ecdsa host1,1.1.1.1 >> ~/.ssh/known_hosts

Команда получает отпечаток howt1 в перспективных known_hosts (имя хоста и IP появляются хэшируются правильно), НО ... Но когда я ssh в хост 1, используя либо имя хоста, либо ip, мне будет предложено принять открытый ключ хоста. Поскольку я «уже» его там, я считаю, что это ошибка.

Редактировать: Я должен упомянуть, что если я не hash имя хоста и ip внутри файла known_hosts (ssh-keyscan без опции «-H»), тогда все работает. (-H документируется в man ssh-keyscan)

Кто-нибудь знает, как это исправить? или это так, как это должно работать по какой-то странной причине?

Возможно, это связано с тем, что запись внутри known_hosts имеет как хэш, так и позже, когда она сравнивает имя или IP, это технически не соответствует, так как не «оба» сравниваются с ip и hostname?

Последнее редактирование: Очищенные вещь, чтобы сделать его проще

Спасибо заранее,
Marc

ответ

0

Вы используете другой синтаксис в ваших примерах.

Общий синтаксис ssh-keyscan, как это определено в это страница руководства

ssh-keyscan [-46Hv] [-f file] [-p port] [-T timeout] [-t type] 
      [host | addrlist namelist] ... 

В первом случае указать хост либо IP или имя хоста. Во втором случае вы указываете namelist. Для правильной работы ssh-keyscan у него должен быть addrlist, поставленный перед наложением списка.

Это, как команда должна выглядеть

ssh-keyscan -H -t ecdsa 1.1.1.1 host1,1.1.1.1 >> ~/.ssh/known_hosts 
+0

Я попробовал то, что вы предложили. ssh'ing работает в другом поле, используя IP, но не имя хоста. Это говорит мне, что «1.1.1.1» хешируется на одной строке, а затем «host1.1.1.1.1» на другой. файл known_hosts подтверждает это. (так что действительно вернулись к квадрату, так как я упомянул, что все остальные варианты этой команды работали нормально) спасибо за попытку помочь хотя ... – mlebel

1

Если вы хотите добавить хеширования записей в ваших known_hosts файл вы должны хэш его первым:

ssh-keygen -H 

От человека страниц для SSH-серийник :

-H Хешировать файл known_hosts. Это заменяет все имена хостов и адресов с хешированными представлениями в указанном файле; исходное содержимое перемещается в файл с расширением .old. Эти хеши могут использоваться обычно с помощью ssh и sshd, но они не раскрывают идентифицирующую информацию, если содержимое файла должно быть раскрыто. Этот параметр не будет изменять существующие хэшированные имена хостов и поэтому безопасен для использования в файлах, которые смешивают хешированные и не хэшированные имена.

Затем вы можете добавлять новые записи в ваших known_hosts так:

ssh-keyscan -Ht ecdsa [hostname],[IP address] >> known_hosts 

И вы должны сделать.

Смежные вопросы