前言:
之前在 Digitalocean(PS:这是我的邀请链接) 上买了个 vps,然后架设了个 ss 服务端就一直放着了。昨天晚上登陆 vps 出现这么个提示:
| 1 2 3 4
 | ssh qstars Last failed login: Sun Apr 19 09:13:30 EDT 2015 from 182.100.67.113 on ssh:notty There were 185356 failed login attempts since the last successful login. Last login: Sun Apr 12 16:20:37 2015 from 222.79.15.190
 | 
有人在试图暴力破解我的 vps 登陆帐号密码。
到 /var/log/secure 下面查看了下日志,各种尝试登陆失败的信息开始刷屏。这人是有多无聊~ 幸好开了 vps 之后我设置了通过 ssh key 来登陆。不过为了把安全性提高一点,还是先把端口改了。并且取消密码登陆。
下面记录下我的操作过程。
vps 配置: Digitalocean  512MB Ram  20GB SSD Disk
系统环境: CentOS 7 x64
本地系统环境: Ubuntu 14.04 LTS
使用 SSH Keys
之前的文章《关于在 Ubuntu 上部署 Hexo 到 GitHub》的文章也有过配置使用 ssh key 登陆 github 的介绍。这里简单写下步骤。
具体配置方法可以参考官方教程:点这里
第一步:本地创建 ssh key。
第二步:
| 1 2 3 4
 | Enter file in which to save the key(/leyar/.ssh/id_rsa):      Enter passphrase(empty for no passphrase):      Enter same passphrase again:     
 | 
接下来正常情况就是配置成功的提示:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
 | Your identification has been saved in /leyar/.ssh/id_rsa. Your public key has been saved in /leyar/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a The key's randomart image is: +--[ RSA 2048]----+ |          .oo.   | |         .  o.E  | |        + .  o   | |     . = = .     | |      = S = .    | |     o + = +     | |      . o + o .  | |           . o   | |                 | +-----------------+
 | 
提示密钥已经保存在 /leyar/.ssh 目录下,公钥为 id_rsa.pub, 私钥为 id_rsa.
因为使用多个 SSH keys,还需要在 config 配置里面还需要添加一下。
| 1 2
 | touch ~/.ssh/config vim ~/.ssh/config
 | 
这里贴下我的配置:
| 1 2 3 4 5 6
 | # digitalocean vps Host qstars HostName 107.170.110.110       # 服务器 ip port 1688                      # ssh 登陆端口 IdentityFile ~/.ssh/id_rsa     # 验证密钥路径 User root                      # ssh 用户名
 | 
第三步: vps 官网添加 SSH Keys
打开公钥文件
复制里面的内容,粘帖到 这个页面 SSH Keys 栏目下。
第四步: 将公钥上传到已创建的 vps 中。
| 1 2
 | cat ~/.ssh/id_rsa.pub | ssh root@[107.170.110.110] "cat >> ~/.ssh/authorized_keys"
 | 
如上都正常操作之后,即可通过 ssh root@107.170.110.110  或者是 ssh qstars (这里qstars 就是你在 config 里面填写的 host)直接免密码登陆。
SSH 相关设置
登陆 vps,修改 /etc/ssh/sshd_config 文件
部分配置改成如下:
| 1 2 3 4 5 6 7 8
 | Port 1688       #修改 ssh 端口,取消 # 号,22 端口改成其他。 PermitRootLogin without-password      #禁止 root 密码登陆 AuthorizedKeysFile      .ssh/authorized_keys      #验证文件路径 RSAAuthentication yes          #RSA 认证 (可不改) PubkeyAuthentication yes       #开启公钥认证 (可不改) PermitEmptyPasswords no        #禁止空密码 PasswordAuthentication no      #禁止密码认证 UsePAM no                      #禁用PAM
 | 
修改了配置后,”:wq” 保存返回,然后重启 ssh 服务
| 1
 | systemctl  restart sshd.service
 | 
更多相关安全设置
进行了这些操作,第二天登陆就没再出现前言里的提醒了,瞬间 vps 清爽了。
当然啦,如果你还觉得不够安全,
centOS 官方还给出了更详细的安全相关操作配置,具体可以参考:
你还可以给 vps 安装上这个: