使用Greenplum出现SSH 22端口无法连接,连接出现被拒绝情况,可以通过修改Greenplum使用的SSH端口来实现。具体的步骤和方式如下!
可以通过修改SSH配置。因Greenplum在集群节点间使用SSH通信,默认22端口遭遇防火墙规则限制或已被其他服务占用,可以修改Greenplum所使用的SSH端口:
修改 gpssh-exkeys 脚本。 这个脚本通常位于 $GPHOME/bin 目录下。你需要在脚本中找到执行SSH命令的地方,并添加指定端口的参数(例如 -p 6233)。
打开 gpssh-exkeys 脚本文件:
$ vi $GPHOME/bin/gpssh-exkeys
找到以下片段:
python
cmd = ['ssh', 'gpadmin@'+remoteHost.host(), '-o', 'BatchMode=yes', '-o', 'StrictHostKeyChecking=yes', 'true']
修改为:
python
cmd = ['ssh', '-p', '6233', 'gpadmin@'+remoteHost.host(), '-o', 'BatchMode=yes', '-o', 'StrictHostKeyChecking=yes', 'true']
确保在脚本中所有类似的SSH命令都添加了 -p 6233 参数。
修改 base.py 脚本。这个脚本通常位于 $GPHOME/lib/python/gppylib/commands/ 目录下。你需要在脚本中找到执行SSH命令的地方,并添加指定端口的参数。
打开 base.py 脚本文件:
$ vi $GPHOME/lib/python/gppylib/commands/base.py
找到 execute 方法中的SSH命令,可能类似于:
python
cmd.cmdStr = "ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 {targethost} \"{gphome} {cmdstr}\"".format(targethost=self.targetHost, gphome=". %s/greenplum_path.sh;" % self.gphome, cmdstr=cmd.cmdStr)
修改为:
python
cmd.cmdStr = "ssh -p 6233 -o StrictHostKeyChecking=no -o ServerAliveInterval=60 {targethost} \"{gphome} {cmdstr}\"".format(targethost=self.targetHost, gphome=". %s/greenplum_path.sh;" % self.gphome, cmdstr=cmd.cmdStr)
确保在该文件中所有类似的SSH命令都添加了 -p 6233 参数。
重新运行 Greenplum 命令: 在完成上述修改后,你可以重新运行 Greenplum 的初始化命令,如 gpinitsystem,以确保集群可以正常启动。
请注意,修改系统关键配置文件和脚本可能会影响到系统的稳定性和安全性,因此在进行这些操作前应确保有充分的备份,并在测试环境中验证更改。如果遇到问题,可以参考 Greenplum 的官方文档或寻求华纳云专业支持
重新配置SSH服务。如果服务器的SSH服务端口已经更改,需要确保Greenplum使用的SSH客户端配置与之匹配。这可能涉及到修改/etc/ssh/ssh_config文件,添加类似Host * Port 22222的配置,以将新的端口号应用于所有主机。
要修改/etc/ssh/ssh_config文件以使用非默认的SSH端口,你需要以root用户或使用sudo命令来编辑该文件。以下是具体步骤:
打开终端。使用文本编辑器打开ssh_config文件。如果用nano编辑器,执行以下命令:
sudo nano /etc/ssh/ssh_config
用vim,可以执行:
sudo vim /etc/ssh/ssh_config
滚动到文件的末尾,并添加以下行来指定新的SSH端口:
Host *
Port 22222
这将为所有SSH连接设置端口为22222。如果为特定的主机或主机组设置不同的端口,可以按如下方式配置:
Host mygreenplumhost
Port 22222
其中mygreenplumhost可以是具体的主机名、IP地址或使用模式匹配。
保存并关闭文件。如果你使用的是nano,可以按Ctrl + X,然后按Y确认保存更改,最后按Enter键退出。如用的是vim,可以按Esc键,输入:wq,然后按Enter键保存并退出。
为了使更改生效,可能需要重启SSH服务。这可以通过以下命令完成:
sudo systemctl restart sshd
或者在某些系统中,可能需要使用:
sudo service ssh restart
请注意,更改SSH配置可能会影响你的远程访问。确保进行这些更改时有其他访问服务器的方式,以防出现配置错误导致你被锁定。此外,确保新指定的端口没有被其他服务使用,并且确保任何防火墙或安全规则都允许通过新端口进行SSH通信。
重新运行Greenplum初始化命令:在完成上述修改后,重新运行Greenplum的初始化命令,如gpinitsystem,以确保集群可以正常启动。
测试连接:在修改端口后,测试从Greenplum的主节点到各个Segment节点的SSH连接是否成功,以确保修改生效。