7.4 更改 SSH 主机密钥

SSH 主机密钥用于区分被监控的主机,不能有重复的SSH 密钥。如果克隆服务器,则可以复制密钥。本节介绍如何更改特定主机的 SSH 主机密钥,消除检测到重复主机时生成的事件和警报。

必须执行以下步骤:

  • 为受监控主机生成新的 SSH 密钥。

  • 编辑监控代理的配置。

在 UNIX、Linux 和 macOS 平台上,使用该 ssh-keygen实用程序。在 Microsoft Windows 平台上,有多种工具,但本示例使用 puttygen.

要为受监控主机生成新的 SSH 密钥,请执行以下操作:

  1. 识别重复的 SSH 密钥。

    在每个被监控的主机上,运行以下命令打印出 SSH 公钥指纹:

    ssh-keygen -l -f /etc/ssh/ssh_host_key.pub
    ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub
    ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub

    并比较每个服务器之间的指纹。使用以下说明删除现有密钥并使用重复密钥为每个服务器重新生成密钥。

  2. 在受监控的主机上,删除现有的重复 SSH 密钥。例如:

    sudo rm -f /etc/ssh/ssh_host_*
  3. 在受监控的主机上,重新生成 SSH 密钥。此操作要求您在下次连接时将这些主机中的每一个添加到您的 SSH 密钥环中。例如:

    sudo ssh-keygen -f /etc/ssh/ssh_host_key -N '' -t rsa1
    sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
    sudo ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa

    如果使用puttygen,请单击 生成并按照屏幕上的说明进行操作。

    笔记

    The key can be generated using RSA (SSH1 or SSH2), DSA, or ECDSA. All are supported by MySQL Enterprise Monitor.

  4. Restart your sshd server.

  5. Note

    This step is required on MySQL 5.5 instances, only. It is not required on any version of MySQL 5.6, or higher.

    On the monitored MySQL instance, edit the hostid value:

    mysql> UPDATE mysql.inventory SET VALUE = 'ssh:{New SSH Fingerprint}' WHERE name = 'hostId';
  6. Restart the monitoring agent.