SSH Kerberos 身份认证.note
一、配置 SSH Kerberos 身份认证:
注意:Kerberos环境时间必须同步,机器必须有FQDN
这里将 KDC和 sshd 服务器拆分了(可以放在同一台机器,在NFS Kerberos那篇笔记中 kdc和nfs服务器就是在同一台机器)
1、配置 KDC(TCP 88、UDP 88、750):
FQDN:Server1.shanghai.org
(1)配置 DNS解析:
# 不强制要求DNS,只需要能够解析FQDN即可(配置hosts也行):
## Client需要能够解析 KDC、Server的FQDN
## Server需要能够解析 KDC 的FQDN
## KDC需要能够解析本机的FQDN(默认就能)(2)配置 KDC:
2.1、安装 KDC:
apt install -y krb5-user krb5-admin-server安装时已经提示了后续需要执行“krb5_newrealm” 命令了

输入 KDC域名(会自动读取当前FQDN后缀):

输入KDC服务器的FQDN,直接输入本机即可

输入KDC中管理密码的服务器的FQDN,直接输入本机即可:

2.2、初始化 KDC 数据库:
# 这个命令在前面安装时有提示过:
krb5_newrealm会提示设置输入两次数据库密码

2.3、创建KDC用户(可用于SSH登陆):
kadmin.local
addprinc user1
(3)创建 KDC票据(给Server和Client用):
OpenSSH的Principal的primary名称是固定的,必须为 host/FQDN@REALM(小写)

注意:KDC的票据严格区分大小写,这里不能够有大小
## principal命名规则:primary(一般是服务要求的名称)/instance(一般是票据存放机器的FQDN[小写])@realm(域名,这个不用写,会自动补全为当前 realm)
# 注意:哪怕FQDN是大写的,KDC票据这里也必须得小写
kadmin.local
addprinc -randkey host/server2.shanghai.org
ktadd -k /root/server2.keytab host/server2.shanghai.org
# 如果要导出多个票据到同一文件中:ktadd -k /root/server2.keytab nfs/server2.shanghai.org host/server2.shanghai.org
quit# 如果要删除票据:
kadmin.local
delprinc host/server2.shanghai.org查看票据:
klist -kte server2.keytab
2、配置 被访问端(sshd):
FQDN:Server2.shanghai.org
(1)获取 KDC票据:
1.1、安装 krb5-user:
apt install -y krb5-user输入 KDC域名(会自动读取当前FQDN后缀):

输入KDC服务器的FQDN

输入KDC中管理密码的服务器的FQDN

1.2、获取 kerberos 票据:
# 复制KDC生成的票据到本地:
scp root@192.168.10.1:~/server2.keytab /etc/krb5.keytab(2)配置 SSH 开启 GSS/krb5认证:
vim /etc/ssh/sshd_config
systemctl restart sshd
(3)创建本地用户:
这个用户必须要和 Kerberos允许登陆的用户相同
换句话说,Kerberos认证通过后,本地必须有一个同名用户,SSH才能成功登陆
adduser user13、配置 客户端(ssh):
FQDN:Server3.shanghai.org
(1)安装 krb5-user:
apt install -y krb5-user输入 KDC域名(会自动读取当前FQDN后缀):

输入KDC服务器的FQDN

输入KDC中管理密码的服务器的FQDN

(2)配置 SSH 开启 GSS/krb5认证:
vim /etc/ssh/sshd_config
systemctl restart ssh
·测试连接:
# 登陆Kerberos的user1用户,获取票据:
## 可以用 kdestory 退出已登陆的 Kerberos用户(重启机器也行)
kinit user1 //输入Kerberos中user1的密码
# 尝试SSH登陆:
## 必须输入FQDN(因为Server2票据中定义的是FQDN)
ssh user1@server2.shanghai.org
免密登陆成功
查看详细登陆信息:

·如果还是连接不上,可以直接将 Server2的票据拷贝过来:
(这样无论是否登陆 Kerberos用户都能连接,但是这样做就破坏了 Kerberos身份认证的核心理念)
但是正常严格按照前面的配置步骤来就不会出错
scp root@192.168.10.2:/etc/krb5.keytab /etc/krb5.keytab