利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

  • A+
所属分类:python基础入门

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

接下来就介绍如何利用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的短信双因素认证!这波操作你不给一百分?

接下来就是编写python脚本实现SSH登陆的短信双因素认证。既然是短信双因素认证,就需要一个短信接口用来发送短信。

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

生成随机验证码并调用短信发送接口发送给用户手机号码。

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

最后是SSH登陆与用户交互过程并校验验证码的准确性。

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

完整代码内容如下:

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

同时需要启用ChallengeResponseAuthentication,修改/etc/ssh/sshd_config,将ChallengeResponseAuthentication设置为yes即可。

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

在上面的代码里面,获取用户手机号码的时候使用的方法是:pwd.getpwnam(user).pw_gecos,这里我将用户的手机号码信息存放在/etc/passwd文件中,当然可以根据需要存放在其他地方,这里只是用作演示。

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

一切配置完成之后,需要重启ssh服务:systemctl restart sshd.service

重启完成之后,使用gary账号ssh登陆目标主机时,就启用了短信双因素认证了。

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

利用Python实现SSH的短信双因素认证!这波操作你不给一百分?

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: