gpssh-exkeys

gpssh-exkeys

在主机之间交换SSH公钥。

概要

gpssh-exkeys -f hostfile_exkeys | - h hostname [-h hostname ...]
                
                gpssh-exkeys -e hostfile_exkeys -x hostfile_gpexpand
                
                gpssh-exkeys -? 
                
                gpssh-exkeys --version

描述

gpssh-exkeys工具在指定的主机名(或主机地址)之间交换SSH密钥。这允许 Greenplum主机和网络接口之间的SSH连接,而不需要口令提示。该工具用于最初将Greenplum数据库 系统准备好用于无口令的SSH访问,以及在扩展Greenplum数据库系统时添加额外的ssh密钥。

要指定参与初始SSH密钥交换的主机,请使用-f选项指定包含主机名列表的文件 (推荐),或使用-h选项在命令行上指出单个主机名。至少需要一个主机名 (-h)或主机文件。请注意,本地主机默认包含在密钥交换中。

指定要添加到现有Greenplum数据库系统的新扩展主机,请使用-e-x 选项。-e选项指定一个文件,其中包含系统中已有SSH密钥的现有主机列表。 -x选项指定一个文件,其中包含需要参与SSH密钥交换的新主机列表。

密钥要作为当前登录的用户交换。用户应该执行两次密钥交换过程:一次作为root用户, 一次作为gpadmin用户(拥有Greenplum数据库安装的用户)。Greenplum数据库管理 要求在Greenplum数据库系统的所有主机上创建相同的非root用户,并且这些工具必须能够以该用户的身份 连接到所有主机而无需口令。

gpssh-exkeys工具使用以下步骤执行密钥交换:

  • 为当前用户创建一个RSA标识密钥对(如果尚不存在)。该密钥对中的 公钥被添加到当前用户的authorized_keys文件中。
  • 使用-h-f-e 以及-x选项指定的每台主机的主机密钥更新当前用户的 known_hosts文件。
  • 使用ssh连接到每个主机,并获取authorized_keysknown_hostsid_rsa.pub文件以设置无口令访问。
  • 将从每个主机获取的id_rsa.pub文件中的密钥添加到当前用户 的authorized_keys文件中。
  • 使用新的主机信息(如果有)更新所有主机上的authorized_keysknown_hostsid_rsa.pub文件。

选项

-e hostfile_exkeys
进行系统扩展时,这个选项指定包含当前Greenplum系统中每台主机 (Master、后备Master和Segment)的所有已配置主机名和主机地址(接口名称)的文件的 名称和位置,每行一个名称,其中没有空行或额外的空格。这个文件中指定的主机不能出现在 -x使用的主机文件中。
-f hostfile_exkeys
指定包含Greenplum系统中每台主机(Master、后备Master和Segment)的所有已配置主机名 和主机地址(接口名称)的文件的名称和位置,每行一个名称,其中没有空行或额外的空格。
-h hostname
指定将参与SSH密钥交换的单个主机名(或主机地址)。用户可以多次使用-h 选项来指定多个主机名和主机地址。
--version
显示此工具的版本。
-x hostfile_gpexpand
进行系统扩展时,这是一个文件的名称和位置,该文件包含要添加到Greenplum系统的 每台新Segment主机的所有已配置主机名和主机地址(接口名称), 每行一个名称,其中没有空行或额外的空格。这个文件中指定的主机不能出现在 -e使用的主机文件中。
-?(帮助)
显示在线帮助。

示例

在文件hostfile_exkeys中列出的所有主机名和地址之间交换SSH密钥:

$ gpssh-exkeys -f hostfile_exkeys

在主机sdw1sdw2sdw3 之间交换SSH密钥:

$ gpssh-exkeys -h sdw1 -h sdw2 -h sdw3

在现有主机sdw1sdw2sdw3, 新主机sdw4sdw5作为系统扩展操作的一部分:

$ cat hostfile_exkeys
                mdw
                mdw-1
                mdw-2
                smdw
                smdw-1
                smdw-2
                sdw1
                sdw1-1
                sdw1-2
                sdw2
                sdw2-1
                sdw2-2
                sdw3
                sdw3-1
                sdw3-2
                $ cat hostfile_gpexpand
                sdw4
                sdw4-1
                sdw4-2
                sdw5
                sdw5-1
                sdw5-2
                $ gpssh-exkeys -e hostfile_exkeys -x hostfile_gpexpand

另见

gpsshgpscp