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_keys、known_hosts和id_rsa.pub文件以设置无口令访问。
- 将从每个主机获取的id_rsa.pub 文件中的密钥添加到当前用户的authorized_keys文件中。
- 使用新的主机信息(如果有)更新所有主机上的authorized_keys、known_hosts和id_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
在主机sdw1、sdw2和sdw3之间交换SSH密钥:
$ gpssh-exkeys -h sdw1 -h sdw2 -h sdw3
在现有主机sdw1、sdw2和sdw3,新主机sdw4和sdw5作为系统扩展操作的一部分:
$ 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