FAQ
- sshd服务未运行。
- 防火墙禁止ssh访问。
- 当前用户对根目录的权限不足。
- 当前用户对公钥文件的权限不足。
- “known_hosts”文件里记录的key和IP地址冲突。
- 公钥不匹配。
确认是否由于sshd服务未运行。
- 执行命令service sshd status查看sshd服务状态。
- 如果sshd服务关闭,使用service sshd start启动sshd服务。
确认是否由于开启了系统防火墙导致ssh互信丢失。
- 执行命令: systemctl status firewalld.service查看openGauss防火墙状态。
- 如果显示系统防火墙打开,使用: systemctl stop firewalld.service命令关闭防火墙。
确认是否由于当前用户对根目录的权限不足。
- 使用ll命令查看根目录属性,确认目录属组是否为互信用户的属组,同时确认用户对目录是否有读和写权限。
- 用chown命令修改文件属组,用chmod命令修改目录权限,使其满足要求。
确认是否由于当前用户对公钥文件的权限不足。
- 查看“~/.ssh/id_rsa.pub”文件,确认文件属组是否为互信用户的属组,同时确认用户对文件是否有读和写权限。
- 用chown命令修改文件属组,用chmod命令修改目录权限使其满足要求。
确认是否由于“known_hosts”文件里记录的key和IP地址冲突。
查看“~/.ssh/known_hosts”文件里记录的key和IP地址是否一致,如果不一致,可能是由于所指定的IP发生了变化等原因导致了异常。此时,删除“.ssh/known_hosts”文件里面原来的公钥信息即可。
确认是由于公钥不匹配。
排除掉上面的所有原因后,如果问题仍存在,可能是公钥不匹配。此时,请删除公钥目录.ssh下的所有文件,按照下面的手工建立互信重新配置。
创建一个执行互信脚本所需要的输入文本,并在此文件中添加openGauss中所有主机IP。
192.168.0.1
192.168.0.3
以需要创建互信的用户执行脚本。
执行下面脚本建立互信。
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是主机名:
在其中一个主机上,生成root用户的本机授权文件。假设在主机plat1上执行。
a. 生成密钥。
ssh-keygen -t rsa
示例如下:
plat1:~ # ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d5:35:46:33:27:22:09:f0:1e:12:a7:87:fa:33:3f:ab root@plat1
The key's randomart image is:
+--[ RSA 2048]----+
| * .o + * |
| + + . . |
| . + o |
| . S |
| . |
| + |
| +. |
| E.oo |
+-----------------+
b. 生成本机授权文件。
cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys
示例如下:
将互信文件分发到其它所有主机上。在本例中,需要将plat1上的互信文件分发到plat2和plat3上。
a. 将互信文件分发到plat2上。Password输入拷贝目标主机的密码。
示例如下:
plat1:~ # scp -r ~/.ssh plat2:~
Password:
authorized_keys 100% 796 0.8KB/s 00:00
id_rsa 100% 1675 1.6KB/s 00:00
id_rsa.pub 100% 398 0.4KB/s 00:00
known_hosts 100% 1089 1.1KB/s 00:00
b. 将互信文件分发到plat3上。Password输入拷贝目标主机的密码。
scp -r ~/.ssh plat3:~
示例如下:
plat1:~ # scp -r ~/.ssh plat3:~
Password:
authorized_keys 100% 796 0.8KB/s 00:00
id_rsa 100% 1675 1.6KB/s 00:00
id_rsa.pub 100% 398 0.4KB/s 00:00
known_hosts 100% 1089 1.1KB/s 00:00
查看互信是否建成功,可以互相ssh主机名。输入exit退出。
plat1:~ # ssh plat2
Last login: Sat Jun 20 14:01:07 2020
plat2:~ # exit
logout
plat1:~ #