KingbaseES 高可用组件sys_securecmdd之二---sys_securecmdd配置介绍

背景:
sys_securecmdd是KingbaseES集群中自带的工具,集群监控、管理集群时通过sys_securecmdd安全执行命令。在一些禁止使用ssh的通用机或者是专用机环境中,可以通过sys_securecmdd工具实现节点之间远程连接后执行相应的命令。

一、sys_securecmdd互信配置
sys_securecmdd作为KingbaseES集群组件,部署在集群节点上,用于节点之间远程安全执行命令;在集群管理中,客户端(sys_securecmd)和服务端(sys_securecmdd)之间连接必须是互信免密,类似ssh之间的互信连接。
对于sys_securecmdd无须手工建立互信,在部署时,自动建立了客户端和服务端之间的互信。sys_securecmdd的互信与ssh的配置没有关系,ssh的配置不影响sys_securecmdd的互信建立。

1、密钥文件
如下所示,密钥文件存储在用户宿主目录的.es下,注意文件正确的属主和权限以及宿主目录的权限,否则影响sys_securecmdd的互信连接:

#通用机环境下,root和kingbase用户都有密钥文件
[root@node201 .es]# ls -lhd /root
dr-xr-x---. 7 root root 4.0K Jan 25 15:45 /root
[root@node201 ~]# ls -lh /root/.es
total 8.0K
-rw-------. 1 root root  381 Aug 25 16:49 accept_hosts
-rw-------. 1 root root 1.7K Aug 25 16:49 key_file

[kingbase@node201 ~]$ ls -lhd /home/kingbase/
drwx------. 30 kingbase kingbase 4.0K Jan 19 00:52 /home/kingbase/
[kingbase@node201 ~]$ ls -lh /home/kingbase/.es
total 8.0K
-rw-------. 1 kingbase kingbase  381 Oct 11 18:00 accept_hosts
-rw-------. 1 kingbase kingbase 1.7K Oct 11 18:00 key_file

2、与ssh密钥文件对比
如下所示,sys_securecmdd和ssh建立互信的原理是一致,都是通过非对称加密(公钥和私钥)来建立节点之间的安全连接。

1)sys_securecmdd密钥文件

#公钥文件
[root@node201 .es]# cat accept_hosts
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4llyAtjAkPvr2VRij+uPfiMPqcfzZ3hjDjyVwCPXUKj2Kapn76cDcjuS8kzMxohlje0frC9SCGS6hRLFPEO0+Im32szmNE/iAQPYqfUzLf7JjydXY/VjGJYyawoMU2yGZuPFTiZ3UiuqO0lQv1a2jTIwR/IVqcG12YjQ/jaHAJclUmRCbKDii2Pda8ezhqmkpSWIM9NX0k69KhVKJMX1x2q1MYnZRaHx53F3d9XBUXFUL3tbwWrYS7CyWslw7GRJqeAKOSTbmYR+2M0+qSFQV+2i2DH34F6LgIzWQz/REdIEy8m37LRFxk8CV7nyrZqqnGHDOUNkoSB9jQ9vXMGkd

#私钥文件
[root@node201 .es]# cat key_file
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAuJZcgLYwJD769lUYo/rj34jD6nH82d4Yw48lcAj11Co9imqZ
++nA3I7kvJMzMaIZY3tH6wvUghkuoUSxTxDtPiJt9rM5jRP4gED2Kn1My3+yY8nV
2P1YxiWMmsKDFNshmbjxU4md1IrqjtJUL9Wto0yMEfyFanBtdmI0P42hwCXJVJkQ
myg4otj3WvHs4appKUliDPTV9JOvSoVSiTF9cdqtTGJ2UWh8edxd3fVwVFxVC97W
8Fq2EuwslrJcOxkSangCjkk25mEftjNPqkhUFftotgx9+Bei4CM1kM/0RHSBMvJt
+y0RcZPAle58q2aqpxhwzlDZKEgfY0Pb1zBpHQIDAQABAoIBACjmH/7g30/YqJCW
EEydFYp86jPzJ7w6SrBh8kCdq6Jj7ZjSv+WiSHpWKvZhgzFXIlr5gNjimSZuX/eZ
mdPUA00GIelMks7gguof+qs1ciOQ2rzjhr96ewYEYeAUgyjG2O4PnWEOF+t1ED2u
+rpSlROerVZ65jDMUmSto7gFMLa7CEjCEgp6pKYQ3QAIla9y/ELzWOqc5MUhlcz2
6S2hZfFY6xw+IETaJb+AGT+unoXGxhbpPWz1OOzQXFnj4YJ6v9LjqpOdTA06+oe1
e0PcHpg8z3HJOtJTeBn5SIfcAIZmayHsa2rXP/1TxYRmgyDtTPDG2SGjn/UiGMFd
7j2eWmECgYEA2pq4b2DqXHF79qfcn0ARX5nlktcTKmohS6Ye83POFsfUf36wY3NF
UDKuFFA/uCthd2IyZb9dQbKqxCZOVQS6M+CQMntda9O3ovakfqvFERroY5YOnMsw
08UtRN3cYmr218m3TEUxnPEKR2dOVHVhTrwW+669ouhmzfRYQf6fcyUCgYEA2Cnx
XSZX5Zg0oTOcUORieoyzDpb4pwJyDjMC2X6Fc45QEwVvtOt1Q3wgFQ5tGWpzggMI
TeSx928hP6O95aOicDgB1/MMhQ5prBbglUbOG+zAe9CX87HA4U8Vsy/Lj7ERLVzl
6++Viodqsdu/h0wsf8r+dkvCXFV1NxGctxn6uJkCgYBJsJYzlWvrNaYgA33vgN1a
aLpmwXGIfrYylhEg6Ay0yS/sunwjShw3aJ4d4t9X6ee1Irjya4u4Nc4yyObm6e0K
x8xT+BoJ2xiwKoxQ1v5bQcLMryzF1gjjmjgkWtWLp5sGKs1LPJf425gncb+J4Peo
XucweDscy1K8Yn3N4VNGsQKBgQDFipbzTF4ZCF5YTqT0W7IPUlMz6w2y+g4nIcDh
57inII/WwioSiPaxxFZBR9y11E1Yq9LD9FIaz+jvkoCwwjhpGxW8NnXjhodVZ9a3
NGyYomRJAhhK8M9WV4J6LRx25RbQgMvxMBJV9WiwvyQpzZgA9Q5UJumoncQvnh28
SraQSQKBgCIJVUbItA9NRgCeweyZYVjyUyKFqIfI16BWvM+ixsyLYjYOsnpQo0A2
2EQMoj3j+qa3nXIhwgeOE9jSwXbhxMc9htqzqtxmy0z2Semvsds8vfEO7Dtx5T3K
p8bKxUqB9kU8brBK+xcmROu9871DMGYub61HNXCk6mA1CM2PNdHT
-----END RSA PRIVATE KEY-----

2)ssh密钥文件

#公钥文件
[root@node201 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCUtrgWHGCxEk4KPrpgPg7xgcZGJ2KHnb08d2pe356jhZCa32iPYlvHRa7DW4/17yTMu7YvVnfuzMfM7Nnq1CpHOvtNrSxluJceaDvn2dptZ4BmvNDaRvSaxhpPjMq766DICj5Hd1Wwz8qoSFZUYr3EMLWuO5Q07ov/C7xAeGlIbbN1O3c44evWR5nnGMOpvspt6UOv8XqVsan+bFmGUjnPc2JbvFi+PwUuNpw5HOpOuHO60Tu53NCNTHFdfPunh8CFb1dQmfH4Tpqr6TM9icGaQCjcaWSlbErPP3LevwP2kWyPMWDU7lGJSEr7kTv3mFEJypmPblCBKHgFqn1PR30X root@srv01

#私钥文件
[root@node201 .ssh]# cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAlLa4FhxgsRJOCj66YD4O8YHGRidih529PHdqXt+eo4WQmt9o
j2Jbx0Wuw1uP9e8kzLu2L1Z37szHzOzZ6tQqRzr7Ta0sZbiXHmg759nabWeAZrzQ
2kb0msYaT4zKu+ugyAo+R3dVsM/KqEhWVGK9xDC1rjuUNO6L/wu8QHhpSG2zdTt3
OOHr1keZ5xjDqb7KbelDr/F6lbGp/mxZhlI5z3NiW7xYvj8FLjacORzqTrhzutE7
udzQjUxxXXz7p4fAhW9XUJnx+E6aq+kzPYnBmkAo3GlkpWxKzz9y3r8D9pFsjzFg
1O5RiUhK+5E795hRCcqZj25QgSh4Bap9T0d9FwIDAQABAoIBACh0XDeHmLYSqLAY
yFKODzqbdvh2llMWEfh087bDVkBdgSzgQW1f8F+RES2LpuncGEKpfbH6771Cb8fL
VqyO8sFVxi8nQMCbKmDXMhSsKsNAOKm6C4aVbsz7vwSM5Emim6ZPQwnl6KWkoRiO
NQ3Xno/UQFgZVQPhMKw84QUYvGs7IkEAKNvcQIq9z1DYLuDZNZKv4s8byo+tm2Rl
B1VyNzH2/enrYx9mchJo8q7tTlIC32n2m/BlTdbyfCwlXqdHVb3RzwYiHwMunBIy
hzC3mEh54NFADJySPipbkuJbWFWjj1Cgpls7PF04ig2r4wcgDIMhW+6/fUKxJwLV
izgAOUECgYEAxQG07kn9nuGY06LyZNv7FEDHBnRz2kNrXBUEln5Edsalsrlfr1qI
hROCRQ3/u+77iF/UiUKH5mj8wwhU32qUj3/iuPdJpgHESaXMovfmjzNPvm9PDZNx
FKtfScDvRdFLIeizEDwH9Wx1RT1R0u4t72Ro/IsvCQuwc4HYoTFw+u8CgYEAwT7v
cmrTlJhYtAU0j7nVFJr9vqdvs8zm2y4JkV6lylOOVYBXE0PBRw5tRjngKhNximN1
dh0Fj53Jk5YYu/aPaFFQ7bqKEAlp/WIINe7sh8+d+VgCw4+r6HnHCuBg6B5TfRP4
YnZMqYg4S6uq3cOzC523GBqn/O5Iff71U64DwFkCgYAJwGfgU7FGKAyUjUBKVck7
22j+nM0PRL8Ps8qiWGWzK2oQSrS9zVFspOaR3HuIJfA1c+jlUnG/qfq4/LSWyoPI
BqCGX1c57GR28MoMVxEGjZeo6YGUPnQefc0drXsqjY2WhBo493+9Wj0DzGE8e6Wy
b9nyhkExxW5aiVbbw8K/6QKBgQCifcwT9pWwliXIQbQ/wm/UorsIzHvVwU7BMEXl
UaOwrG+7n24YidmEaTIjYdkHKFBJoHYNejvJ1lDAY+6qZpmRiwa0zyz2bSQNZpgm
2Z9UV5SrLIEudamEkpl2oNN7eryTKO6rxHOT/jHwFwpW7Q6pjtV9VDS7LpYQNAmP
cnw/CQKBgD4LGWxz/VStaGVtPulIHvrscroMP2cEmmsR6dxnVkA6z/iE2tUyMuxm
z2fCKD7VEE5HlEc7Fpt5U48iNLKCt+HALrB9nJfE2iqkSia3JwwJxmMkTiyjc67V
FOBVpA4m8188UlzCEejUbtns9dF09s5hKsIKo93wuLVNNdjwgcXV
-----END RSA PRIVATE KEY-----

3、debug方式启动sys_securecmdd
在Client和Server不能免密建立连接时,可以启动sys_securecmdd到debug模式,对故障问题进行诊断:

[root@node201 system]# /home/kingbase/cluster/securecmdd/bin/sys_securecmdd -D -ddd
debug2: load_server_config: filename /etc/.kes/securecmdd_config
debug2: load_server_config: done config len = 580
debug2: parse_server_config_depth: config /etc/.kes/securecmdd_config len 580
debug3: /etc/.kes/securecmdd_config:1 setting Port 8890
debug3: /etc/.kes/securecmdd_config:2 setting HostKey ~/.es/key_file
debug3: /etc/.kes/securecmdd_config:3 setting AuthorizedKeysFile .es/accept_hosts
debug3: /etc/.kes/securecmdd_config:4 setting PidFile /var/run/sys_securecmdd.pid
debug3: /etc/.kes/securecmdd_config:5 setting AddressFamily any
debug3: /etc/.kes/securecmdd_config:6 setting LogLevel QUIET
debug3: /etc/.kes/securecmdd_config:7 setting PasswordAuthentication yes
debug3: /etc/.kes/securecmdd_config:8 setting IgnoreUserKnownHosts yes
debug3: /etc/.kes/securecmdd_config:9 setting ChallengeResponseAuthentication no
........
debug3: /etc/.kes/securecmdd_config:18 setting UsePAM yes
debug3: /etc/.kes/securecmdd_config:20 setting TcpUserTimeout 9000
debug1: sshd version OpenSSH_8.6, OpenSSL 1.1.1q  5 Jul 2022
debug1: private host key #0: ssh-rsa SHA256:M0b/7bx/AZyPul5TDdmKAGxnuBq5hOKqkTi8ihpWbII
......

4、客户端和服务端连接
如下所示,客户端和服务端的连接,应该是互信方式,无需输入密码建立连接,并正确执行命令:

[kingbase@node202 bin]$ ./sys_securecmd root@192.168.1.201 'date'
Thu Jan 25 16:13:28 CST 2024

二、sys_securecmdd配置文件
如下所示,配置文件存储在/etc/.kes下,默认配置一般不需要修改,可以通过配置文件修改服务端口、客户端认证(UsePAM)等。

[root@node201 ~]# ls -lh /etc/.kes
total 8.0K
drwxr-xr-x. 2 root root   6 Aug 25 16:49 empty
-rwxr-xr-x. 1 root root 376 Aug 25 16:49 securecmd_config   --客户端配置文件
-rwxr-xr-x. 1 root root 664 Aug 25 16:49 securecmdd_config  --服务端配置文件

1、客户端配置文件

[root@node201 .kes]# cat securecmd_config
Port 8890               --指定服务端口(默认:8890)
ForwardX11Trusted yes
SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
SendEnv XMODIFIERS
IdentityFile ~/.es/key_file    ---私钥文件
StrictHostKeyChecking no

2、服务端配置文件

[root@node201 .kes]# cat securecmdd_config
Port 8890                --指定服务端口(默认:8890)
HostKey ~/.es/key_file                     --私钥文件
AuthorizedKeysFile      .es/accept_hosts   --公钥文件
PidFile /var/run/sys_securecmdd.pid
AddressFamily any
LogLevel QUIET
PasswordAuthentication yes
IgnoreUserKnownHosts yes
ChallengeResponseAuthentication no
X11Forwarding no
Subsystem sftp /home/kingbase/cluster/securecmdd/bin/sys_secureftp
# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
MaxStartups 128:10:256
UsePAM yes                     --客户端认证是否启动PAM方式
# set TCP_USER_TIMEOUT, fixed unit be ms
TcpUserTimeout 9000

3、修改服务端口
如下所示,修改服务端和客户端配置文件,指定对应的端口:(注意在集群环境注意也要修改相应的集群配置文件install.conf、repmgr.conf等)

[root@node201 .kes]# cat securecmdd_config
Port 8899                --指定服务端口(默认:8890)

[root@node201 .kes]# cat securecmd_config
Port 8899               --指定服务端口(默认:8890# 重启后服务端口号
[root@node101 .kes]# netstat -an|grep 889
tcp        0      0 0.0.0.0:8899            0.0.0.0:*               LISTEN
tcp6       0      0 :::8899                 :::*                    LISTEN

三、总结
sys_securecmdd工具作为KingbaseES集群的组件,主要实现节点间建立远程的安全连接及命令的执行,需要建立互信。了解其配置,有助于更好的使用这个工具。对于sys_securecmdd应用的故障问题,将在后面的章节介绍。

posted @   天涯客1224  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2022-01-25 kingbaseES V8R6集群运维案例之---配置priority防止failover切换案例
点击右上角即可分享
微信分享提示