FAQ

    • sshd服务未运行。
    • 防火墙禁止ssh访问。
    • 当前用户对根目录的权限不足。
    • 当前用户对公钥文件的权限不足。
    • “known_hosts”文件里记录的key和IP地址冲突。
    • 公钥不匹配。
    • 确认是否由于sshd服务未运行。

      1. 执行命令service sshd status查看sshd服务状态。
      2. 如果sshd服务关闭,使用service sshd start启动sshd服务。
    • 确认是否由于开启了系统防火墙导致ssh互信丢失。

      1. 执行命令: systemctl status firewalld.service查看openGauss防火墙状态。
      2. 如果显示系统防火墙打开,使用: systemctl stop firewalld.service命令关闭防火墙。
    • 确认是否由于当前用户对根目录的权限不足。

      1. 使用ll命令查看根目录属性,确认目录属组是否为互信用户的属组,同时确认用户对目录是否有读和写权限。
      2. 用chown命令修改文件属组,用chmod命令修改目录权限,使其满足要求。
    • 确认是否由于当前用户对公钥文件的权限不足。

      1. 查看“~/.ssh/id_rsa.pub”文件,确认文件属组是否为互信用户的属组,同时确认用户对文件是否有读和写权限。
      2. 用chown命令修改文件属组,用chmod命令修改目录权限使其满足要求。
    • 确认是否由于“known_hosts”文件里记录的key和IP地址冲突。

      查看“~/.ssh/known_hosts”文件里记录的key和IP地址是否一致,如果不一致,可能是由于所指定的IP发生了变化等原因导致了异常。此时,删除“.ssh/known_hosts”文件里面原来的公钥信息即可。

    • 确认是由于公钥不匹配。

      排除掉上面的所有原因后,如果问题仍存在,可能是公钥不匹配。此时,请删除公钥目录.ssh下的所有文件,按照下面的手工建立互信重新配置。

    1. 创建一个执行互信脚本所需要的输入文本,并在此文件中添加openGauss中所有主机IP。

      1. 192.168.0.1
      2. 192.168.0.3
    2. 以需要创建互信的用户执行脚本。

    3. 执行下面脚本建立互信。

      1. plat1:/opt/software/openGauss/script# ./gs_sshexkey -f /opt/software/hostfile

      /opt/software/hostfile为主机列表,列出所有需要建立互信机器的主机IP。

    说明:

    建立互信的过程中需要生成如下4个文件:authorized_keys、id_rsa、id_rsa.pub、known_hosts。请勿删除或破坏这些互信相关的文件。

    手工建立信任关系,步骤如下,plat1、plat2、plat3是主机名:

    1. 在其中一个主机上,生成root用户的本机授权文件。假设在主机plat1上执行。

      a. 生成密钥。

      1. ssh-keygen -t rsa

      示例如下:

      1. plat1:~ # ssh-keygen -t rsa
      2. Generating public/private rsa key pair.
      3. Enter file in which to save the key (/root/.ssh/id_rsa):
      4. Created directory '/root/.ssh'.
      5. Enter passphrase (empty for no passphrase):
      6. Enter same passphrase again:
      7. Your identification has been saved in /root/.ssh/id_rsa.
      8. Your public key has been saved in /root/.ssh/id_rsa.pub.
      9. The key fingerprint is:
      10. d5:35:46:33:27:22:09:f0:1e:12:a7:87:fa:33:3f:ab root@plat1
      11. The key's randomart image is:
      12. +--[ RSA 2048]----+
      13. | * .o + * |
      14. | + + . . |
      15. | . + o |
      16. | . S |
      17. | . |
      18. | + |
      19. | +. |
      20. | E.oo |
      21. +-----------------+

      b. 生成本机授权文件。

      1. cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys

      示例如下:

    2. 将互信文件分发到其它所有主机上。在本例中,需要将plat1上的互信文件分发到plat2和plat3上。

      a. 将互信文件分发到plat2上。Password输入拷贝目标主机的密码。

      示例如下:

      1. plat1:~ # scp -r ~/.ssh plat2:~
      2. Password:
      3. authorized_keys 100% 796 0.8KB/s 00:00
      4. id_rsa 100% 1675 1.6KB/s 00:00
      5. id_rsa.pub 100% 398 0.4KB/s 00:00
      6. known_hosts 100% 1089 1.1KB/s 00:00

      b. 将互信文件分发到plat3上。Password输入拷贝目标主机的密码。

      1. scp -r ~/.ssh plat3:~

      示例如下:

      1. plat1:~ # scp -r ~/.ssh plat3:~
      2. Password:
      3. authorized_keys 100% 796 0.8KB/s 00:00
      4. id_rsa 100% 1675 1.6KB/s 00:00
      5. id_rsa.pub 100% 398 0.4KB/s 00:00
      6. known_hosts 100% 1089 1.1KB/s 00:00
    3. 查看互信是否建成功,可以互相ssh主机名。输入exit退出。

      1. plat1:~ # ssh plat2
      2. Last login: Sat Jun 20 14:01:07 2020
      3. plat2:~ # exit
      4. logout
      5. plat1:~ #