第一步:ldap + kerberos 整合 ,参考之前的文章
第二步:google authentication 安装配置,参考之前的文章
第三步:整合 ldap + kerberos + google authentication
1. 由于sshd默认在使用了秘钥或者kerberos验证的时候,就通过了验证,不再执行google authentication的动态密码验证,所以我们需要新版本的sshd的AuthenticationMethods选项
支持,这个选项参数指定sshd必须完成的所有验证过程,可以包括:keyboard-interactive,gssapi-with-mic,publickey,password 这几个,用逗号隔开。
2. 旧版本不支持AuthenticationMethods选项,所以首先需要升级openssh。
2.1 为了避免升级过程中出现意外,导致ssh无法登陆,首先安装telnet-server,确保telnet可以登录服务器。
2.2 升级openssh
2.2.1 下载最新openssh源码编译安装,编译参数如下:
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-kerberos5 --with-md5-passwords && make && make install
2.2.2 复制sshd启动脚本和添加开机启动
cp contrib/redhat/sshd.init /etc/init.d/sshd && chkconfig --add sshd
2.2.3 启动sshd并测试登录,测试登录完成,关闭telnet
3. 配置sshd: 编辑 /etc/ssh/sshd_config
PasswordAuthentication no
AuthenticationMethods keyboard-interactive,gssapi-with-mic
4. 配置pam,关闭密码验证:编辑/etc/pam.d/sshd
注释掉auth include password-auth
5. 重启sshd,并获取kerberos凭证,测试登录:
5.1 是否要求输入google-authenticator的动态密码。
5.2 输入动态密码后,是否不需要密码,直接使用kerberos登录。