第一步: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登录。