沙唐桔

BWH VPS SSH 安全登录折腾小记

目前在用 BWH 的廉价 VPS,前几天把博客搬过去了。以前只做爱国工具,没怎么折腾,能用就行。

博客搬过去,得装模做样折腾一番,起码心里上觉得更安全了。手上只有 BWH 的廉价 VPS,还有一个更廉价的 Virmach 特价 KVM,买完就后悔,速度比 BWH 更慢。本文基于 BWH VPS(Centos 7 x86_64)和 iPhone SE(iOS11)环境完成。折腾了两个地方:一是将 SSH 改为使用密匙登录,并禁止账户密码登录;二是开启两步验证登录 VPS 控制面板(KiwiVM Control Panel)。

SSH 改为用密匙登陆

VPS 安装/初始化完,默认是账号+密码登陆+端口,改成密匙登陆更安全。当然,端口也不要用默认的 22,不过 BWH 初始化自动生成的端口就不是 22,所以改端口这步可以直接省略。如需要可以参考:

CentOS 7 修改 SSH 端口

一般 SSH 默认端口是 22,不安全。最好修改一下。 (更多…)

用 root 登录后运行命令:

ssh-keygen -t rsa -b 4096

运行命令导入公钥:

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

接着修改 SSH 的配置文件 /etc/ssh/sshd_config,找到下面两行:

#RSAAuthentication yes
#PubkeyAuthentication yes

将前面的#去掉后保存。

运行命令:service sshd restart,重启 SSH 服务。

然后测试 SSH 能否通过刚才生成的私匙登录。免费的 Xshell 蛮好用的,下面是改为密匙登录的方法,可以参考一下。

如果有多个密匙,导入密匙后还需要选择对应的密匙。

设置好,如无意外 SSH 就可以使用密匙正常登录。确认密匙可以正常登录,就可以把使用账户密码登录方式关闭。

同样需要修改 SSH 配置文件 /etc/ssh/sshd_config,找到下面一行:

PasswordAuthentication yes

修改为:

PasswordAuthentication no

service sshd restart,重启 SSH 服务,测试是否无法使用密码登录。

收工。

参考:秋水逸冰 - SSH无密码登录及putty设置

开启两步验证

对于 BWH,SSH 改用密匙登录并禁用密码还不够,因为还可以通过自带的 KiwiVM Control Panel 轻易管理 VPS,甚至重装系统(Install new OS/Reload)。而 BWH 账户本身只需密码登录,没有两步验证之类的功能,只能通过开启两步验证登录 VPS 的 KiwiVM Control Panel 来加一道防护。

开启方法很简单,不过有一点小坑。登录 KiwiVM Control Panel,点 Two-factor authentication 进去功能设置,会有个温馨提示。

点 Continue 下一步。激活两步验证有三个步骤,一是安装两步验证 App,BWH 推荐 Google Authenticator;二是用 App 扫描二维码或者输入页面提示的账户密匙(KiwiVM account key);三是输入两步验证 App 生成的六位数字代码完成两步验证激活。

小坑:Google Authenticator 直接扫描二维码,会提示不是有效的两步验证信息。

开始以为是 Google Authenticator 不兼容 BWH 的两步验证,于是网上找了一番,换了个 2STP,这个可以备份账户信息到 iCloud,而 Google Authenticator 不可以,设备丢失了就麻烦了。安装好 2STP,再扫二维码,还是与 Google Authenticator 提示同样的信息。

只好试试手工输入账号(VPS IP 地址)和页面提示的账户密匙,保存,输入 App 生成的六位数字代码,两步验证激活成功。

两步验证激活成功会生成一个备份密匙,注意保管好。手机不在身边的时候可以用它代替两步验证码登录 VPS 控制面板。

还可以关联手机号码,万一设备丢失/系统崩溃、备份密匙丢失,可以通过短信找回备份密匙。多备条后路应该不会错吧?

输入备份密匙、手机号码,按提示操作即可。

至此两步验证激活完成。

后记:后来试着用微信扫一扫二维码,会显示一个空白页面,选择 Safari 打开,神奇的事情发生了,直接跳转到 2STP 提示是否添加两步验证账户,添加完也可以正常使用。