如果你购买了阿里云,华为云,或者腾讯云,登陆的方式默认都是密码登陆,这样你的服务器就会暴露在外面,在你不知道的情况下,就会被人暴力破解
基于秘钥的安全验证就是给自己创建一对秘钥(公钥和私钥), 公钥放到服务器存储起来, 当你登陆的时候获取到你的私钥, 会想服务器发送请求,服务器就开始从根目录开始找公钥, 然后将私钥跟公钥比较, 一致就可以登陆了
本次我们服务器就将改为账号+秘钥登陆,提高安全性, 这里以centos7.3为例子

1. 先登陆到你的服务器, 生成秘钥

1
ssh-keygen -t rsa

返回信息

1
2
3
4
5
6
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): // 直接回车
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y // 我的本来就有秘钥,这是重新设置,第一次是没有这个的
Enter passphrase (empty for no passphrase): // 密码,建议设置一个密码
Enter same passphrase again: // 重复密码

2. 之后将~/.ssh/id_rsa.pub 复制到 ~/.ssh/authorized_keys,并且赋予权限

1
2
3
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

3. 修改配置文件

随后修改/etc/ssh/sshd_config 文件,将PubkeyAuthentication 后面的值都改成yes ,保存。

4. 可选(关闭密码登陆)

修改/etc/ssh/sshd_config 文件将PasswordAuthentication yes 修改成 PasswordAuthentication no(最后一行)

5. 重启ssh服务

1
sudo service sshd restart

6. 测试秘钥登陆

将服务器目录中的秘钥~/.ssh/id_rsa下载到本地
windows为例, 我用的是xshell 7

浏览—-选择用户秘钥

将本地的秘钥导入
这个就是生成秘钥时输入的密码

之后就进入到服务器了
这样安全性确实大大提升了,但是也不是滴水不漏,因为你本地电脑也是有可能被入侵的