2.OpenLDAP集成SSH登录并使用SSSD同步用户
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢
1.文档编写目的
前面Fayson文章讲《1.如何在CentOS6.5安装OpenLDAP并配置客户端》,安装及配置好OpenLDAP后,如何使用OpenLDAP上的用户登录集群服务器,本篇文章主要介绍OpenLDAP如何与SSH集成并配置SSSD同步用户。
- 内容概述
1.安装OpenLDAP客户端及依赖包
2.初始化SSSD服务配置
3.修改配置SSSD配置文件
4.验证SSH登录
- 测试环境
1.CentOS6.5
2.OpenLDAP版本2.4.40
- 测试环境
1.OpenLDAP已安装且服务正常
2.OpenLDAP客户端SSSD配置
1.客户端安装软件包,提示:代码块部分可以左右滑动查看噢
yum -y install openldap-clients sssd authconfig nss-pam-ldapd
Fayson在安装OpenLDAP服务的时候已经安装了。
2.执行如下命令配置并启用sssd服务,提示:代码块部分可以左右滑动查看噢
authconfig --enablesssd --disableldaptls --disablekrb5 --ldapserver ldap://ip-172-31-7-172.fayson.com --ldapbasedn "dc=fayson,dc=com" --update
3.配置sssd.conf文件,如果文件不存在则新建,提示:代码块部分可以左右滑动查看噢
[root@ip-172-31-7-172 openldap-ldif]# vim /etc/sssd/sssd.conf
[domain/default]
ldap_search_base = dc=fayson,dc=com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://ip-172-31-7-172.fayson.com
[sssd]
services = nss, pam, autofs
config_file_version = 2
domains = default
[nss]
homedir_substring = /home
4.修改sssd.conf文件权限
chmod 600 /etc/sssd/sssd.conf
5.启动sssd服务并加入系统自启动,提示:代码块部分可以左右滑动查看噢
[root@ip-172-31-7-172 openldap-ldif]# service sssd start
Starting sssd: [ OK ]
[root@ip-172-31-7-172 openldap-ldif]# chkconfig --add sssd
[root@ip-172-31-7-172 openldap-ldif]# chkconfig sssd on
[root@ip-172-31-7-172 openldap-ldif]# chkconfig --list sssd
sssd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@ip-172-31-7-172 openldap-ldif]#
6.至此完成sssd的配置,可以通过id查看用户OpenLDAP的用户,提示:代码块部分可以左右滑动查看噢
[root@ip-172-31-7-172 openldap-ldif]# id faysontest
uid=510(faysontest) gid=510(faysontest) groups=510(faysontest)
[root@ip-172-31-7-172 openldap-ldif]# more /etc/passwd |grep faysontest
[root@ip-172-31-7-172 openldap-ldif]#
可以看到faysontest用户是通过OpenLDAP添加的,在本地是没有faysontest这个用户。
至此已完成SSSD的配置。
3.OpenLdap与SSH集成
1.修改配置文件/etc/ssh/sshd_config,是ssh通过pam认证账户,提示:代码块部分可以左右滑动查看噢
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no
UsePAM yes
2.修改配置文件/etc/pam.d/sshd,以确认调用pam认证文件,提示:代码块部分可以左右滑动查看噢
[root@ip-172-31-5-190 ~]# vim /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
session required pam_mkhomedir.so #加入此行后确保登录成功后创建用户的home目录
3.修改配置文件,提示:代码块部分可以左右滑动查看噢
[root@ip-172-31-5-190 ~]# vim /etc/pam.d/password-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
#auth sufficient pam_sss.so use_first_pass
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
#password sufficient pam_sss.so use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session optional pam_oddjob_mkhomedir.so umask=0077
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
#session optional pam_sss.so
session optional pam_ldap.so
注意:将黄底标注部分对应的pam_sss.so配置修改为pam_ldap.so
4.重启sshd服务,提示:代码块部分可以左右滑动查看噢
[root@ip-172-31-5-190 ~]# service sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
[root@ip-172-31-5-190 ~]#
4.验证SSH登录
1.ssh登录本机,提示:代码块部分可以左右滑动查看噢
[root@ip-172-31-5-190 ~]# ssh faysonldap@ip-172-31-5-190
faysonldap@ip-172-31-5-190's password:
Last login: Wed Dec 20 07:56:19 2017 from 172.31.5.190
[faysonldap@ip-172-31-5-190 ~]$
2.ssh远程登录,提示:代码块部分可以左右滑动查看噢
[root@ip-172-31-10-118 ~]# ssh faysonldap@ip-172-31-5-190
faysonldap@ip-172-31-5-190's password:
Last login: Wed Dec 20 08:20:44 2017 from 172.31.5.190
[faysonldap@ip-172-31-5-190 ~]$
登录成功,配置完毕。
提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操
- UWP基础教程 - 调起应用的几种方法
- Go语言的网络编程简介
- 你与敬业福还差一个yxcms app漏洞的距离
- Gopher面试中的Coding
- golang 标准库间依赖的可视化展示
- 静态变量和实例变量的区别(配图解释专业术语,通俗易懂)
- 论golang是世界上最好的语言
- 用shape画内圆外方,形成一个圆形头像
- 在Go中对gRPC+ProtoBuf与Http+Json进行基准测试
- Achartengine.jar绘制动态图形一 --饼图
- 工具| 关于Python线程和队列使用的小思考
- Java中list<Object[]>、list<Student>、list<Map<String,String>>排序
- Java-单例模式详解(图文并茂,简单易懂)
- Fragment生命周期及实现点击导航图片切换fragment,Demo
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- DB2 Linux平台安装 Part 3 实例的建立与配置
- C++核心准则Con.2:默认情况下,将成员函数定义为const类型
- C++核心准则Con.3:默认情况下,传递参照常量的指针或引用
- C++核心准则Con.4:如果一个对象在构建之后值不会改变,使用const定义它
- C++核心准则Con.5:对于可以在编译时计算的值,使用constexpr进行声明
- DB2 Linux平台安装 Part 4 创建数据库
- VBA编写Ribbon Custom UI编辑器03——认识Ribbon的xml
- VBA编写Ribbon Custom UI编辑器04——解析xml
- VBA编写Ribbon Custom UI编辑器05——转换结构体XML
- MySQL 8.0.19 Linux平台安装 Part 1
- MySQL 8.0.19 Linux平台安装 Part 2
- 使用XtraBackup备份MySQL 8.0 Part 1 xtrabackup 8.0 安装
- 10个解放双手的 IDEA 插件,少些冤枉代码!
- 二叉树的 4 种遍历方式,你会多少?
- 【C++简明教程】Python和C++指定元素排序比较