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