ssh-keyscan 无法读取 .ssh/config?

ssh-keyscan 无法读取 .ssh/config?

我正在使用ssh-keyscanshell 脚本来接受主机密钥。主机由主机名标识,但不在 /etc/hosts 中。它们在里面,./ssh/config所以我可以ssh <hostname>,但我不能ping等等。

看起来好像ssh-keyscan没有使用该.ssh/config文件,这看起来很有趣。

有人能证实他们也遇到过这种事吗?

真正的问题:有人有办法让 ssh-keyscan 使用 ~/.ssh/config 吗?

答案1

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.

答案2

ssh-keyscan 是一个用于收集多个主机的公共 ssh 主机密钥的实用程序。它旨在帮助构建和验证**ssh_known_hosts**文件。ssh-keyscan 提供了一个适合 shell 和 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 - 

相关内容