前言 最近看到黑客扫描网段获取ip之后暴力破解密码造成信息和经济损失的事,就想到自己的树莓派和服务器也是直接暴露在外网,平时输错密码也是常有的事情,也没对密码进行什么限制.这样想想也是有些后怕,害怕密码被通过穷举破解的方法破解.于是去查询了一些关于SSH的安全设置.
更改SSH默认端口 大多数恶意扫描都是对默认端口进行扫描 改变默认端口能减少很大的风险
vim /etc/ssh/sshd_config
-----------------------------------
Port 22 # 改为其他端口
关闭ssh密码登录
vim /etc/ssh/sshd_config
-----------------------------------
#PasswordAuthentication yes
#取消密码认证的注释 将yes改为no
启用RSA公钥验证
vim /etc/ssh/sshd_config
----------------------------------
#PubkeyAuthentication yes
#取消注释
#centos 服务器的ssh设置中可能还有
#RSAAuthentication yes
#取消注释
AuthorizedKeysFile .ssh/authorized_keys #路径改为生成的连接主机的公钥
禁用空密码账户登录
# 禁止空密码账户登入(默认禁止)
PermitEmptyPasswords no
完成更改 更改完成后
systemctl restart sshd.service #重启ssh服务
如果你的服务器有进行防火墙的配置
ufw allow 更改端口/tcp
#或者
firewall-cmd --zone=public --add-port=端口/tcp --permanent
firewall-cmd --complete-reload #重新载入防火墙配置
另提一句,如果像是阿里云的服务器,还需要在它的安全组中添加开放的端口
客户端配置 更换了SSH的默认端口后,连接SSH时加上端口参数即可:
ssh -p 端口 example.com
也可以编辑~/.ssh/config文件,在其中加上Port参数,这样在连接SSH时,可以继续使用更换端口前的命令.
~/.ssh/config
--------------------
Host example.com
Port 端口
优点 配置简单,修改单行配置并重启服务即可 有效减少各种针对SSH的扫描 缺点 使连接 SSH 变得略微麻烦; 有些时候,我们需要保持 SSH 监听在 22 端口上,那么这种方法就不适用了。xxxxxxxxxx deploy: type: git repo: server: ssh://username@ip:port/path/to/remote/gityml