前言

SSH 提供两种认证方式,密码认证和密钥认证,一般我们买来的 VPS 都是密码认证。密码的缺点是很容易被暴力破解,而且密码需要记忆,使用起来麻烦。密钥的好处是,你只需要一对密钥文件:公钥和私钥,公钥相当于门锁,装在 VPS 上,私钥相当于钥匙,放在本地计算机上,登录的过程就像是用钥匙去开锁,有钥匙的人才能打得开,不仅安全,而且方便。此外,公钥可以复制到其它主机和账户,这就像是你装了很多同样门锁。

便宜高性价比 VPS 推荐,其中 OneVPS 拥有无限流量,建站、网络加速还是离线下载都非常合适,最低月付仅4美元,使用优惠码ONEVPS可以打9折。

获取密钥

就像门锁,先得有,才能装。你可以使用 Xshell 生成密钥,也可以通过其他方式生成密钥,再导入到 Xshell 中进行管理。关于导入和管理的方法可参考《使用 Xshell 管理 SSH 密钥》这篇文章,这里不做赘述。

在 Xshell 中点开工具菜单,选择用户密钥管理者 ( Alt+T+U )。

用户密钥窗口中点击生成按钮。

新建用户密钥生成向导中会让你选择密钥类型,一般默认即可,点击下一步

然后会要求你填写密钥名称和密码,免密登录密码留空即可,然后点完成

之后会有下面这个提示,选择即可。

当完成密钥生成的操作后密钥会出现在用户密钥的窗口中。

配置密钥

给 VPS 配置密钥简单来说就是把公钥内容写入到~/.ssh/authorized_keys中的过程。

首先使用 Xshell 登录到 VPS,这里需要注意需要配置密钥的用户,不要弄错。

执行下面的命令创建 SSH 认证文件并打开文本编辑器。

mkdir -p ~/.ssh && nano ~/.ssh/authorized_keys

然后在 Xshell 中点开工具菜单,选择用户密钥管理者 ( Alt+T+U )。

用户密钥窗口中双击密钥进入密钥属性。

在属性窗口中选择公钥标签,复制公钥。

把复制的公钥粘贴到终端的文本编辑器中,最后保存退出。

为了能正常登陆,需要给文件设置相应的权限。

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

使用密钥登录 VPS

这里以新建会话为例子,已有会话可以通过右键属性进入到这个窗口。

进入用户身份验证设置选项,按照下面的图片操作即可。

禁用密码登录

在确认使用密钥能正常登录后,为了提高 VPS 的安全性建议禁用密码登录。

执行以下命令,对 sshd 配置文件(/etc/ssh/sshd_config)进行修改。

sudo sed -i '/PasswordAuthentication /c\PasswordAuthentication no' /etc/ssh/sshd_config

最后重启 sshd 服务,使配置生效。

sudo service sshd restart