
使用SSH-keyscan收集主机公钥
在Linux中,我们常常需要访问其他主机。在这个过程中,我们需要验证其他主机的身份,避免中间人攻击。此时,我们可以使用密钥认证方式,其中,我们需要将本机的公钥添加到目标主机的已授权公钥列表中。如果目标主机是新的,或者我们无法确定目标主机的公钥,我们需要手动添加目标主机的公钥。不过,这种方式需要我们手动验证主机的指纹,因此,为了方便而不影响安全性,我们可以使用ssh-keyscan这个工具。
1. ssh-keyscan命令简介
ssh-keyscan命令用于收集指定主机的公钥。它会告知我们该主机的公钥指纹,以便我们能够将其添加到已授权公钥列表中。
2. ssh-keyscan基本用法
我们可以通过如下命令使用ssh-keyscan工具:
ssh-keyscan hostname
其中,hostname为目标主机的名称或IP地址。
如果我们有多个目标主机需要收集公钥,可以在命令中添加多个主机名称或IP地址。
ssh-keyscan hostname1 hostname2 hostname3
3. ssh-keyscan示例
下面是一个具体的示例。假设我们需要收集主机example.com的公钥,并将其存储在文件known_hosts中。当我们第一次与主机example.com通信时,会收到如下的提示信息:
The authenticity of host 'example.com (10.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:HmtN2afmnWHcxGQUtYrWfQGv7iz+bNymfNQeYPj1LvM.
Are you sure you want to continue connecting (yes/no)?
此时,我们可以使用ssh-keyscan工具,将主机example.com的公钥添加到已授权公钥列表中。具体命令如下:
ssh-keyscan example.com > ~/.ssh/known_hosts
执行完该命令后,我们再尝试访问主机example.com时,就不会再收到警告信息了。此时,ssh会自动读取known_hosts文件中的公钥,并根据公钥指纹验证主机的身份。
4. 总结
ssh-keyscan是一个很不错的工具,可以方便地收集主机的公钥。我们可以使用该工具将目标主机的公钥添加到已授权公钥列表中,避免了手动添加公钥的繁琐过程,同时也保证了安全性。

暂无评论内容