使用VPS已经有一年有余,一直使用的还比较好,但是最近总是收到空间商的邮件说我的vps在收到恶意猜测密码。无赖之下安装了Denyhosts,但是随之而来的问题更普遍了,虽然阻挡了恶意的扫描,但总是无法登陆进vps,也给服务器的管理带来了很大的不便,经过与朋友交流,索性直接将VPS的验证方式修改为了使用密匙的方式,再修改了SSH的端,使用一月下来发现服务器很稳定,才看日志也没有那么多的恶意扫描了!
修改sshd_config配置
具体的使用参数可以参考官方说明:https://linux.die.net/man/5/sshd_config
修改SSH登录端口
$ vi /etc/ssh/sshd_config
# 修改端口为1688
Port 22
# 停用第一类协议
Protocol 2
# 重启服务
$ service sshd restart
# Centos 7 防火墙规则处理
# 创建新的防火墙配置
$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-custom.xml
# 更改端口为1688
$ vim /etc/firewalld/services/ssh-custom.xml
<port protocol="tcp" port="1688"/>
# 更新防火墙规则
$ firewall-cmd --permanent --remove-service='ssh'
$ firewall-cmd --permanent --add-service='ssh-custom'
$ firewall-cmd --reload
使用密钥登录SSH
SSH登录方式有账号+密码和密钥两种形式,为了阻止暴力破解VPS的账号和密码,我们可以放弃密码验证的方式,改用密钥文件验证。
生成密钥文件
[root@31828440 ~]# ssh-keygen -b 4096 -t rsa -C "jalena@bcsytv.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #直接回车
Enter passphrase (empty for no passphrase): #访问密码
Enter same passphrase again: #验证访问密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8f:55:92:c1:56:b8:0f:0c:fb:25:dd:29:ed:8e:e8:4b root@31828440.kvmla.com
The key's randomart image is:
+--[ RSA 2048]----+
| ..o. |
| . +o |
| =oo.o . |
| . =o+ + |
| S..= o |
| +. . . |
| . E. o |
| .. . . |
| .o. |
+-----------------+
生成密钥时会询问你密钥保存的位置,默认即可,还有你可以为你的密钥还设置一个密码,默认为空。保存位置在/root/.ssh
密钥生成后,进入密钥存放的目录中,执行以下命令,将公钥生成一个新的文件。
cd /root/.ssh
# 写入配置
cat id_rsa.pub >> authorized_keys
# 配置权限
chmod 600 authorized_keys
chmod 700 ~/.ssh
将id-rsa
这个私钥文件下载到本地,打开Xshell软件,执行工具->用户密匙管理,导入这个私钥文件即可。
有了密钥登录VPS,我们就可以禁止用密码登录这种验证方式了,编辑配置:/etc/ssh/sshd_config
,修改如下参数:
# SSH连接方式,参数为1或者2,这里仅使用SSH2作为连接
Protocol 2
# serverkey强度
ServerKeyBits 4096
# 禁用root账户登录,非必要,若直接使用root账户登陆就不能禁止,否则无法登陆
# no表示禁用
PermitRootLogin no
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
# 密匙认证信息配置
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile /root/.ssh/authorized_keys
# 禁用密码登录,安全要紧
PasswordAuthentication no
保存,重启SSH服务,生效。
注:此方式适合非Putty的连接,Putty连接需要转换Key!
文章评论
直接关掉sshd,然后使用ssh console
@逗妇乳 太高端。不适合啊