kerberos&ssh 原理、免密登录搭建
原理

详细介绍
参考oracle文档:Kerberos 服务
安装过程
1.安装krb5
yum install -y krb5-server
yum install krb5-workstation pam_krb5 -y
用hosts代替dns
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.130.98.196 example.com
10.130.98.196 kerberos.example.com
10.130.98.155 test1.example.com
10.130.98.156 test2.example.com
2.修改krb5配置
vim /etc/krb5.conf
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt
default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
EXAMPLE.COM = {
kdc = kerberos.example.com
admin_server = kerberos.example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
3.修改ssh配置
修改后需systemctl restart sshd
3.1 vim /etc/ssh/ssh_config
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes
3.2 vim /etc/ssh/sshd_config
KerberosAuthentication yes
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
GSSAPIStrictAcceptorCheck no
GSSAPIKeyExchange yes
4.创建数据库
kdb5_util create -r EXAMPLE.COM -s //建立keberbos鉴权数据库
kadmin.local -q "addprinc root/admin@EXAMPLE.COM" //创建库管理员
5.启动krb5
systemctl start kadmin
systemctl start krb5kdc
systemctl enable krb5kdc
systemctl enable kadmin
6.创建用户
kadmin中
addprinc cjb
用listprincs查看用户
要进kadmin,kdc上可
kadmin.local,通用kadmin -p root/admin
7.创建服务主机
相当于在kdc注册该服务
kadmin中
addprinc -randkey host/test1.example.com
addprinc -randkey host/test2.example.com
8.服务主机保存密钥
在,test1上,kadmin
ktadd -k /etc/krb5.keytab host/test1.example.com
本地查看/etc/krb5.keytab
验证klist -t -e -k /etc/krb5.keytab
可选,此步骤为在本地保存服务key,配置好即可实现免密钥直接登录
9.本地用户获取凭据
kinit cjb
查看获取凭据信息klist
删除凭据kdestroy
10.测试
ssh cjb@test1.example.com
已下载keytab则无需输密码,反之输入kdc中cjb的密码
安装过程问题汇总
1 kadmin、kinit显示无法连接

1.1 kdc上kadmin.local可用,kadmin不可用
参照方法2
1.2 检查域名是否可访问
可通过配置/etc/hosts解决

1.3 iptables
通过iptables -F关闭(生产环境不建议这么做)
2 ssh无法验证通过
确保你要登录的那台机子有当前身份账号,无需设置密码(如有设置密码,验证过程先是kdc在验证本地密码)
3 可以通过域名登录,但无法使用ip
例 ssh cjb@10.130.98.156
解决方法:在kdc上注册ip
参考链接
https://www.jianshu.com/p/78564a5ef983?tdsourcetag=s_pctim_aiomsg
https://www.cnblogs.com/gongxin12/articles/9851868.html
https://www.cnblogs.com/xiaodf/p/5968178.html
https://www.cnblogs.com/lsdb/p/11309245.html?tdsourcetag=s_pctim_aiomsg
kerberos&ssh 原理、免密登录搭建的更多相关文章
- Hadoop起步之图解SSH、免密登录原理和实现
1. 前言 emmm….最近学习大数据,需要搭建Hadoop框架,当弄好linux系统之后,第一件事就是SSH免密登录的设置.对于SSH,我觉得使用过linux系统的程序员应该并不陌生.可是吧,用起来 ...
- CentOS下SSH远程免密登录服务器
.5服务器上配置,通过ssh远程免密登录192. 1.安装SSH,此处省略 2.生成公钥和私钥,生成的秘钥默认在/root/.ssh/文件夹里面 [root@localhost ~ ::&&a ...
- Linux/(centos、unix等)的ssh双向免密登录原理和实现
原理: 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录. 双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他 ...
- ssh 制作免密登录(免密登录多台服务器)
场景:服务器B (192.168.1.101)免密登录A(192.168.1.100)服务器 1.登录服务器B ①生产公钥 ssh-keygen -t rsa Enter file in which ...
- SSH配置免密登录
[参考文章]:linux服务器ssh免密码登录 [参考文章]:ssh分发秘钥时出现错误“Permission denied (publickey,gssapi-keyex,gssapi-with-mi ...
- Ubuntu安装openssh安装ssh、 免密登录、 创建新用户并免密登录
一.安装openssh sudo apt-get install openssh-server ssh localhost 二.免密登录 cd ~/.ssh ssh-keygen ...
- Hadoop SSH+IP、SSH+别名 免密登录配置
1.为什么要进行 SSH 无密码验证配置? Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个Da ...
- 2019-10-11 ubuntu ssh远程免密登录配置及配置别名
在客户端能正常远程访问服务端的前提下. 客户端: 1)配置免密 执行 ssh-keygen 即可生成 SSH 钥匙,回车三次. 执行 ssh-copy-id user@remote,可以让远程服务器记 ...
- kerberos&LDAP实现免密码登录搭建
kerberos && openldap 1.install openldap & kerberos server: yum install db4 db4-utils db4 ...
随机推荐
- count的一些用法
count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL count(1)包括了所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL count(列名)只包 ...
- 构建 DNS 主从复制服务器
一.主节点配置 1.yum install bind -y 安装 DNS 服务 2.vim /etc/named.conf 编辑 DNS 的配置文件 3.named-checkconf 检查配置文件 ...
- Dart Learn Notes 03
操作符 dart 有一套自己定义的操作符: 这里我就不再写了,直接copy一份官网的. 如果有过编程基础,上边展示的操作符应该都不陌生. 算术运算符 加: + 减: - 乘: * 除: / 取余: % ...
- LeetCode 5276. 不浪费原料的汉堡制作方案 Number of Burgers with No Waste of Ingredients
地址 https://leetcode-cn.com/problems/number-of-burgers-with-no-waste-of-ingredients/ 目描述圣诞活动预热开始啦,汉堡店 ...
- 攻略前端面试官(一):JS的数据类型和内存机制浅析
原文地址:http://rainykane.cn/2019/09/29/与K_K君一起攻略前端面试官(一):JS的数据类型和内存机制浅析/ 背就完事了 介绍:一些知识点相关的面试题和答案 使用姿势:看 ...
- 利用Spring AOP的通知类型以及创建通知
写在最前端 1.SpringAOP中共有六种通知类型,只要我们自定义一个类实现对应的接口,它们全都是org.springframework.aop包中的. 2.AOP的连接点可以是方法调用.方法调用本 ...
- opencv简介以及环境搭建
1.opencv简介 opencv:全称:Open Source Computer Vision Library 是一个跨平台的计算机视觉库 可用于开发实时的图像处理.计算机视觉以及模式识别程序 应用 ...
- 软件测试必须掌握的抓包工具Wireshark,你会了么?
作为软件测试工程师,大家在工作中肯定经常会用到各种抓包工具来辅助测试,比如浏览器自带的抓包工具-F12,方便又快捷:比如时下特别流行的Fiddler工具,使用各种web和APP测试的各种场景的抓包分析 ...
- 《程序人生》系列-害敖丙差点被开除的P0事故
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub https://github.com/JavaFamily上已经收录有一线大厂面试点脑图.个人联系方式和技术交流群,欢迎Star和指教 ...
- 程序员的算法课(18)-常用的图算法:广度优先(BFS)
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...