- A+
接下来就介绍如何利用pam_python模块实现SSH的短信双因素认证。首先需要编译和安装pam_python模块。依次执行以下命令:
yum install pampam-devel -y #安装编译需要的依赖
wget -Opam-python_1.0.6.tar.gz https://sourceforge.net/projects/pam-python/files/latest/download?source=files --no-check-certificate #下载pam_python模块
tar xvfpam -python_1.0.6.tar.gz
cd pam-python_1.0.6
make lib
cp src/build/lib.linux-x86_64-2.7/pam_python.so/lib64/security/.
接下来就是编写python脚本实现SSH登陆的短信双因素认证。既然是短信双因素认证,就需要一个短信接口用来发送短信。
生成随机验证码并调用短信发送接口发送给用户手机号码。
最后是SSH登陆与用户交互过程并校验验证码的准确性。
完整代码内容如下:
同时需要启用ChallengeResponseAuthentication,修改/etc/ssh/sshd_config,将ChallengeResponseAuthentication设置为yes即可。
在上面的代码里面,获取用户手机号码的时候使用的方法是:pwd.getpwnam(user).pw_gecos,这里我将用户的手机号码信息存放在/etc/passwd文件中,当然可以根据需要存放在其他地方,这里只是用作演示。
一切配置完成之后,需要重启ssh服务:systemctl restart sshd.service
重启完成之后,使用gary账号ssh登陆目标主机时,就启用了短信双因素认证了。