t2d.ssh_known_hosts
sshknownhosts角色
这是一个管理SSH已知主机文件的Ansible角色,该文件通常位于/etc/ssh/ssh_known_hosts
或~user/.ssh/known_hosts
。
这个角色的主要目的是封装位于https://github.com/bfmartin/ansible-sshknownhosts的sshknownhosts模块,使其适用于Ansible Galaxy。
要求
任何类Unix系统并且安装有openssh服务器的系统都可以使用。
安全性
如果ssh_known_hosts文件是通过ssh-keyscan构建的而没有验证密钥,用户将会面临中间人攻击的风险。另一方面,如果安全模型允许这种风险,ssh-keyscan可以帮助检测在创建ssh_known_hosts文件后发生的篡改密钥文件或中间人攻击。
(摘自ssh-keyscan手册页)
因此,您可以通过提供fingerprint
属性手动指定指纹。
角色变量
该角色使用以下变量及其默认值:
ssh_known_hosts_path
:写入的目标文件。默认是/etc/ssh/ssh_known_hosts,而~user/.ssh/known_hosts是一个不错的选择。
ssh_known_hosts_state
:存在或不存在。默认是存在。
ssh_known_hosts_enctype
:要扫描的公钥编码类型。可选值为rsa、dsa、ecdsa或ed25519。默认是rsa。
ssh_known_hosts_port
:扫描远程主机时连接的端口。默认是22。
ssh_known_hosts_keyscan
:用于扫描的程序。默认是当前路径下的ssh-keyscan。
ssh_known_hosts
:要扫描的主机及其属性的字典列表:
ssh_known_hosts:
- name: example.com
state: present
dest: /etc/ssh/ssh_known_hosts
enctype: rsa
port: 22
keyscan: ssh-keyscan
aliases:
- www.example.com
- www2.example.com
依赖项
无。
示例剧本
- hosts: all
vars:
ssh_known_hosts:
- name: example.com
state: present
dest: /etc/ssh/ssh_known_hosts
enctype: rsa
port: 22
keyscan: ssh-keyscan
aliases:
- www.example.com
- www2.example.com
- name: srv.example.com
fingerprint: AAAAE2VjZHNhLXNoYTItbmlzdHAyN...
roles:
- role: sshknownhosts
许可证
BSD
作者信息
Byron F. Martin
电子邮件: http://www.bfmartin.ca/contact
GitHub: bfmartin