Я использую ssh-keyscan
в сценарии оболочки для приема ключей от хостов. Хосты идентифицируются по имени хоста, но не в / etc / hosts. Они в ./ssh/config
Так что я могу ssh <hostname>
но я не могу ping
и т.п.
Это выглядит как ssh-keyscan
не использует .ssh/config
файл, и это кажется забавным.
Может кто-нибудь подтвердить, что это происходит с ними?
Реальный вопрос: есть ли у кого-нибудь способ заставить ssh-keys использовать ~ / .ssh / config?
ssh-keyscan не может и не может быть использован .ssh/config
.
Однако то, что вы просите, не требует этого: простая передача реальных имен / адресов хостов в ssh-keyscan (и, таким образом, сохранение их в known_hosts) будет работать, даже если вы используете псевдонимы из конфигурации с ssh
. Но вы даже можете указать ssh-keyscan добавлять в вывод другие имена помимо тех, которые он использовал для подключения при использовании -f
вариант:
-f file
Read hosts or “addrlist namelist” pairs from file, one per line.
If - is supplied instead of a filename, ssh-keyscan will read
hosts or “addrlist namelist” pairs from the standard input.
ssh-keyscan - это утилита для сбора общедоступных ключей хоста ssh для ряда хостов. Он был разработан, чтобы помочь в создании и проверке **ssh_known_hosts**
файлы. ssh-keyscan предоставляет минимальный интерфейс, подходящий для использования в сценариях оболочки и Perl.
-f file
Read hosts or addrlist namelist pairs from this file, one per line. If - is supplied instead of a filename, ssh-keyscan will read hosts or addrlist namelist pairs from the standard input.
Input format:
1.2.3.4,1.2.4.4 name.my.domain,name,n.my.domain,n,1.2.3.4,1.2.4.4
Output format for rsa1 keys:
host-or-namelist bits exponent modulus
Output format for rsa and dsa keys:
host-or-namelist keytype base64-encoded-key
Where keytype is either ''ssh-rsa'' or ''ssh-dss''.
/etc/ssh/ssh_known_hosts
Например:
Print the rsa host key for machine hostname:
$ ssh-keyscan hostname
Find all hosts from the file ssh_hosts which have new or different keys from those in the sorted file ssh_known_hosts:
$ ssh-keyscan -t rsa,dsa -f ssh_hosts | sort -u - ssh_known_hosts | diff ssh_known_hosts -