管理用户
Pigsty需要一个管理用户,该用户能够从元节点上免密码SSH登陆其他节点,并免密码执行sudo
命令。
管理用户
Pigsty推荐将管理用户的创建,权限配置与密钥分发放在虚拟机的Provisioning阶段完成,作为交付内容的一部分。
沙箱环境的默认用户vagrant
默认已经配置有免密登陆和免密sudo,您可以从宿主机或沙箱元节点使用vagrant登陆所有的数据库节点。对于生产环境来说,即机器交付时,应当已经配置有这样一个具有免密远程SSH登陆并执行免密sudo的用户。
如果没有,则需要用户自行创建。如果用户拥有root权限,也可以用root身份直接执行初始化,Pigsty可以在初始化过程中完成管理用户的创建。相关配置参数包括:
node_admin_setup
是否在每个节点上创建管理员用户(免密sudo与ssh),默认会创建。
Pigsty默认会创建名为admin (uid=88)
的管理用户,可以从元节点上通过SSH免密访问环境中的其他节点并执行免密sudo。
node_admin_uid
管理员用户的uid
,默认为88
node_admin_username
管理员用户的名称,默认为admin
node_admin_ssh_exchange
是否在当前执行命令的机器之间相互交换管理员用户的SSH密钥?
默认会执行交换,这样管理员可以在机器间快速跳转。
node_admin_pks
写入到管理员~/.ssh/authorized_keys
中的密钥
持有对应私钥的用户可以以管理员身份登陆。
Pigsty默认会创建uid=88
的管理员用户admin
,并将该用户的密钥在集群范围内进行交换。
node_admin_pks 中给出的公钥会被安装至管理员账户的authorized_keys
中,持有对应私钥的用户可以直接远程免密登陆。
配置SSH免密访问
在元节点上,假设执行命令的用户名为vagrant
。
生成密钥
以vagrant
用户的身份执行以下命令,会为vagrant
生成公私钥对,用于登陆。
ssh-keygegn
- 默认公钥:
~/.ssh/id_rsa.pub
- 默认私钥:
~/.ssh/id_rsa
安装密钥
将公钥添加至需要登陆机器的对应用户上:/home/vagrant/.ssh/authorized_keys
如果您已经可以直接通过密码访问远程机器,可以直接通过ssh-copy-id
的方式拷贝公钥。
# 输入密码以完成公钥拷贝
ssh-copy-id <ip>
# 直接将密码嵌入命令中,避免交互式密码输入
sshpass -p <password> ssh-copy-id <ip>
然后便可以通过该用户免密码SSH登陆远程机器。
配置免密SUDO
假设用户名为vagrant
,则通过visudo
命令,或创建/etc/sudoers.d/vagrant
文件添加以下记录:
%vagrant ALL=(ALL) NOPASSWD: ALL
则 vagrant 用户即可免密sudo
执行所有命令