实战ansible-playbook(七)-免密ansible-playbook扩展

如果 known_hosts 文件中已经存在某个主机的密钥,再次执行 ssh-keyscan 并追加到文件中是否会重复添加相同的密钥。默认情况下,ssh-keyscan 会将主机密钥追加到文件末尾,而不检查是否已经存在相同的密钥。

为了避免重复添加相同的主机密钥,可以使用以下方法之一:

方法 1:使用 ssh-keygen 命令清理已知主机

在添加新的主机密钥之前,可以先移除 known_hosts 文件中指定主机的现有条目。这可以通过 ssh-keygen -R 命令实现。

- name: "6. 添加所有主机的 SSH 主机密钥到 known_hosts 文件"
  block:
    - name: 清理已知主机密钥(如果存在)
      shell: ssh-keygen -R {
  { item }} || true
      args:
        warn: false
      changed_when: false

    - name: 添加主机的 SSH 主机密钥到 known_hosts 文件
      shell: |
        mkdir -p /home/{
  { target_user }}/.ssh
        chmod 700 /home/{
  { target_user }}/.ssh
   

你可能感兴趣的:(Linux系统,ansible,网络,服务器)