ssh-keyscan(1)

НАЗВАНИЕ
ssh-keyscan - собирает публичные ключи ssh

СИНТАКСИС
ssh-keyscan [-v46] [-p port] [-T timeout] [-t type] [-f file] [host | addrlist namelist] [...]

ОПИСАНИЕ
ssh-keyscan это утилита для сбора публичных ssh-ключей машин с ряда компьютеров. Это сделано в целях оказания помощи при формировании и проверке файлов ssh_known_hosts. ssh-keyscan обеспечивает минимальный интерфейс, подходящий для использования оболочки и сценариев perl.

ssh-keyscan использует не блокируемое подключение ввода/вывода для создания параллельных сеансов связи с таким количеством компьютеров, насколько это возможно. Так что это очень эффективный инструмент. Ключи из домена с 1000 машин могут быть собраны в считанные секунды, даже если некоторые из этих компьютеров выключены или на них не работает ssh. Вы не нуждаетесь во входе в систему на машинах, которые вы сканируете, и при этом процесс просмотра не требует ни какого шифрования.

Распознаются следующие опции:

-p port
    Целевой порт для подключения на удалённой машине.

-T timeout
    Устанавливает время ожидания для попытки установить соединение. Если timeout секунд с момента начала соединения с машиной или момента получения любой информации с данной машины истёк, соединение завершается и машина считается недоступной. Значение по умолчанию 5 секунд.

-t type
    Указывает тип запрашиваемого со сканируемой машины ключа. Допустимыми значениями будут: "rsa1", для протокола версии 1, и "rsa" или "dsa", для протокола версии 2. Могут быть заданы множественные значения, разделённые через запятую. Значением по умолчанию является "rsa1".

-f filename
    Считывает машины или пары addrlist namelist из указанного файла, по одной на строку. Если вместо имени файла стоит -, то ssh-keyscan будет считывать машины или пары addrlist namelist со стандартного ввода.

-v  Режим отладки. Принуждает ssh-keyscan выводить отладочную информацию о проделываемой работе.

-4  Принуждает ssh-keyscan использовать только IPv4-адреса.

-6  Принуждает ssh-keyscan использовать только IPv6-адреса.

БЕЗОПАСНОСТЬ
Если файл ssh_known_hosts создаётся с использованием ssh-keyscan без проверки ключей, то пользователи будут уязвимы для атак. С другой стороны, если модель безопасности допускает такой риск, ssh-keyscan позволит распознать поддельные файлы ключей или атаки по принципу man-in-the-middle после того как был создан файл ssh_known_hosts.

ПРИМЕРЫ
Распечатать rsa1-ключ машины для компьютера hostname:

$ ssh-keyscan hostname

Найти все машины из файла ssh_hosts, содержащие новые или отличающиеся ключи от ключей в упорядоченном файле ssh_known_hosts:

$ ssh-keyscan -t rsa,dsa -f ssh_hosts | sort -u - ssh_known_hosts | diff ssh_known_hosts -

ФАЙЛЫ
Входной формат: 1.2.3.4,1.2.4.4 name.my.domain,name,n.my.domain,n,1.2.3.4,1.2.4.4

Выходной формат для rsa1-ключей: host-or-namelist bits exponent modulus

Выходной формат для rsa- и dsa-ключей: host-or-namelist keytype base64-encoded-key

Где keytype является "ssh-rsa" или "ssh-dsa".

/etc/openssh/ssh_known_hosts

ОШИБКИ
Вызывает появление сообщения "Connection closed by remote host" (Соединение завершено удаленным компьютером) на консолях всех просматриваемых машин под управлением сервера версии старшей 2.9. Это происходит потому, что осуществляется подключение на порт ssh, чтение публичного ключа и сброс соединения сразу, как только получен ключ.

СМОТРИ ТАКЖЕ
ssh(1), sshd(8)

АВТОРЫ
Первоначальная версия написана David Mazieres <dm@lcs.mit.edu>. Wayne Davison <wayned@users.sourceforge.net> добавил поддержку протокола версии 2.

ПЕРЕВОД
Перевод с английского: Александр Блохин