为 ssh 增加两步验证

最近不小心把服务器 ssh 密码给开源了,觉得应该使用一个更安全的方法登录 ssh。其实使用 ssh key 是一种方法,但是在别人的电脑上就不行了,后来想到两步验证。

其实我在很多地方都使用了两步验证,比如 qq、微博之类的,包括本博客的后台。而两步验证的 app 一般使用 Google Authenticator,但是因为是通用算法,我一般使用国内的洋葱,更方便一些。

这个过程折腾了我很久,因为我登录的时候总是不提示输入动态密码,后来发现使用 apt-get 安装的就可以,而我是编译的源代码。很奇怪。

在开始之前,务必注意先多开几个窗口,然后 ssh 登录进去,防止发生意外,无法再登录了。

步骤很简单

sudo apt-get install libpam-google-authenticator

然后

vim /etc/pam.d/sshd

auth required pam_google_authenticator.so加到文件开头。

vim /etc/ssh/sshd_config

ChallengeResponseAuthentication no改成ChallengeResponseAuthentication yes

运行google-authenticator,可以都选择y,其中第一步完成后会有一个 url 和一堆数字代码,打开那个 url,使用洋葱扫描添加网站就好了。

最后别忘了service ssh restart

效果图

QQ20151011-0.png

已有 5 条评论

  1. raphael

    博主,我用cent设置这个不好使,ssh的时候依然是看不见输入验证码的

    1. 不知道啊,我是用的 Ubuntu 测试的,按说 Centos 上也可以用的。

      1. raphael

        那这个错误日志在哪儿看啊?

  2. 还真是能折腾啊,我原来没用过VPS主机,自从用了Linode,整个人都不好了。各种权限设置什么的,还动不动需要手动重启一下,不会配置哦。

添加新评论