最近不小心把服务器 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