1.
前言
是不是经常通过 SSH 登录上服务器后看到如下提示:
There were 4899 failed login attempts since the last successful login.
这其实是有人在暴力破解你的 ssh 密码,就是一直试,这样的事情其实无时无刻都在发生。
所以如果想让你的服务器更加安全点的话,可以使用强密码,或者使用密钥登录然后更换 ssh 端口,这就是本文要讲的了。
2.
生成密钥
2.1.
安装 Xshell
现在官方貌似已经不提供个人教育版下载了,只能下载到付费版的貌似。
这里提供一个以前用的版本,可以选择安装个人教育版。点击下载
2.2.
生成私钥公钥
安装完毕后打开 Xshell,在主界面上方选择工具->用户密钥管理者->生成(类型 RSA,长度 2048)
然后用户密钥信息这里的密钥名称随便输入,密码自行设置,然后下一步再点击完成就可以了,记得保存好公钥文件。
注意:生成的公钥和私钥可以用于多台服务器,操作步骤一样,当然你也可以为每一台服务器都生成一个独立的公钥和私钥!!
3.
设置密钥登录
3.1.
修改 SSH 配置
首先我们登录我们的 linux 服务器。执行命令
nano /etc/ssh/sshd_config
修改 SSH 端口,默认是 22,你可以改为任意端口,记得开放对应的防火墙,当然你也可以不改!
Port 22
开启密钥登录
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
然后禁用密码登录
PasswordAuthentication no
按Ctrl+X输入Y保存退出,最后重启 SSH。
/etc/init.d/ssh restart ###Debian/Ubuntu /etc/init.d/sshd restart ###Centos
这样我们的 SSH 就配置好了。
3.2.
添加公钥
首先看看你的 root 目录下有没有.ssh文件夹,如果没有就执行以下命令新建
mkdir /root/.ssh chmod 700 /root/.ssh
编辑authorized_keys文件
nano /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys
将刚才保存的公钥内容复制过来,然后保存。
要搞清楚公钥是在服务器上的,私钥在本地,也就是存在你的 xshell 里,当然你也可以从 xshell 导出它。
4.
通过 Xshell 登录
打开Xshell,选择左上角的文件->打开->新建,然后输入名称,IP,端口(如果没改就是 22 额)
选择你生成的那个密钥和密码
这样你的服务器基本上就不会再出现那种尝试失败的信息了,虽然说如果有强密码别人爆破成功的概率低,但万一成功了呢 hah,所以以后还是用密钥吧,这样安全!!