如何通过Kerberos建立两台服务器之间的信任

keywords: ssh crontab kerberos


场景: 我们经常要在服务器上定时的执行一些脚本,而这些脚本又需要访问另外一些服务器

问题: 我们的服务器采用的是kerberos认证,那么定时执行的脚本如何获取授权并成功访问另外一台服务器

解决办法:利用keytab来授权

让我们来假定一个场景:我们有A和B两台服务器,我们的需求是在A服务器上每天定时去在B服务器上执行echo "hello"命令

第一步:准备A上的脚本,在脚本开头加上如下的代码export PATH="/usr/kerberos/bin:$PATH" #kerberos 安装目录
export KRB5CCNAME=/tmp/krb5cc_pub_$$ #产生的pubkey存放的目录
trap kdestroy 0 1 2 3 5 15 #命令结束后删除pubkey
kinit -k -t /etc/krb5.keytab
第二步:B服务器授权A服务器的访问权限
在B服务器上的.k5login文件中添加 host/testhost@XXX.COM 其中testhost为A的服务器名,在.k5login的配置文件中服务器名必须小写!!!

补充:
由于有些机器是web账号,可能连读取/etc/krb5.keytab权限都没有,导致使用keytab认证失败,这时可以变化
一下,来进行keytab认证,步骤如下:
(1)找一台keytab认证没有问题的机器,将其/etc/krb5.keytab拷到你的目标机器上(如/data/web目录下面)
用klist -k /data/web/krb5.keytab看一下文件内容.比如

Keytab name: FILE:/data/web/krb5.keytab
KVNO Principal
3 host/sjswt37-52.opi.com@XIAONEI.OPI.COM
3 host/sjswt37-52.opi.com@XIAONEI.OPI.COM
3 host/sjswt37-52.opi.com@XIAONEI.OPI.COM
3 host/sjswt37-52.opi.com@XIAONEI.OPI.COM
由于37-52的keytab认证是ok的,所以接下来将采用37-52的principal进行keytab认证
(2)采用拷贝过来keytab进行认证
kinit -k -t /data/web/krb5.keytab host/sjswt37-52.opi.com@XIAONEI.OPI.COM




一下是过去的尝试,mark一下
——————————————————————————————
export PATH="/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/data/web/bin:/opt/apache-maven/bin:/data/web/java/bin"
export PATH="/usr/kerberos/bin:$PATH"
export KRB5CCNAME=/tmp/krb5cc_pub_$$
trap kdestroy 0 1 2 3 5 15
kinit -k -t /etc/krb5.keytab


不过貌似服务器上我没有root权限,所以
kinit -k -t /etc/krb5.keytab
时会报错。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kafka可以通过Kerberos进行身份验证和安全连接。下面是通过Kerberos连接Kafka的步骤: 1. 配置Kafka服务器: - 在Kafka服务器上安装Kerberos客户端和服务端软件。 - 配置Kafka服务器的`server.properties`文件,设置以下属性: ``` listeners=SASL_PLAINTEXT://<kafka_server>:<kafka_port> security.inter.broker.protocol=SASL_PLAINTEXT sasl.mechanism.inter.broker.protocol=GSSAPI sasl.enabled.mechanisms=GSSAPI sasl.kerberos.service.name=kafka ``` - 启动Kafka服务器。 2. 创建Kerberos主体和Keytab文件: - 在Kerberos服务器上创建一个服务主体(例如:`kafka/kafka_server_hostname@REALM`)。 - 为该服务主体生成Keytab文件,并将其分发到Kafka服务器。 3. 配置Kafka客户端: - 在Kafka客户端上安装Kerberos客户端软件。 - 配置Kafka客户端的`client.properties`文件,设置以下属性: ``` bootstrap.servers=<kafka_server>:<kafka_port> security.protocol=SASL_PLAINTEXT sasl.mechanism=GSSAPI sasl.kerberos.service.name=kafka sasl.kerberos.principal=<kafka_client_principal> sasl.kerberos.keytab=<kafka_client_keytab> ``` - 将Kerberos客户端的`krb5.conf`文件配置为正确的Kerberos Realm和KDC信息。 4. 使用Kafka客户端: - 使用Kafka提供的Kerberos认证库进行身份验证和连接。 - 例如,使用Kafka命令行工具发送和接收消息: ``` kafka-console-producer.sh --broker-list <kafka_server>:<kafka_port> --topic <topic> --producer.config client.properties kafka-console-consumer.sh --bootstrap-server <kafka_server>:<kafka_port> --topic <topic> --consumer.config client.properties ``` 通过以上步骤,你可以通过Kerberos安全连接到Kafka。请确保正确配置Kerberos和Kafka的相关参数,并提供正确的主体和Keytab文件路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值