前几天写过一篇 关于 玩转 firewalld ,会这几招就够了 并没有那么难 的文章,主要是告诉一些刚建站的童鞋,合理使用防火墙,能起到一定的防御作用!
这篇文章主要是讲 VPS 使用 SSH 密钥的方式登陆,通常情况下, VPS 或服务器开通后都是直接提供 IP 、端口和 root 密码,这种登陆方式就是密码登录,如果没有安装 DenyHosts 之类的防止 SSH 密码破解的软件,那么登陆密码很容易被暴力破解!
而使用 SSH key 登陆,是利用非对称加密算法,实现验证登录。简单来说,就是先创建一对密钥,其中一个是私钥保存在本地设备中,另一个是公钥,传到你的 VPS 中,之所以叫做密钥对,是因为使用公钥加密的消息只能使用对应的私钥解密。所以当连接到 SSH 服务器上时,客户端软件就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件( putty , xshell 等)。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器,这种方式是相当安全的。
1. 生成密钥对
ssh-keygen -t rsa Enter file in which to save the key (/root/.ssh/id_rsa): 建议直接回车使用默认路径 Enter passphrase (empty for no passphrase): 输入密码(留空则直接回车) Enter same passphrase again: 重复密码
此时在 /root/.ssh/ 目录下生成了 2 个文件,id_rsa 为私钥,id_rsa.pub 为公钥。私钥自己下载到本地电脑妥善保存(丢了服务器可就没法再登陆了),为安全,建议删除服务器端的私钥。
2. 导入 KEY 文件
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
3、修改 SSH 的配置文件 /etc/ssh/sshd_config
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no
4. 重启 SSH 服务
完成上面配置文件修改后,重启 SSH 服务,使用 SSH-KEY 来登陆了,重启 SSH 服务指令如下:
#CentOS系统 service sshd restart #Debian/Ubuntu系统 service ssh restart
重启后,就已经不能再使用账号密码登陆了,有兴趣的同学可以再试一下,一定会显示登录失败!
5. 通过 Xshell 使用 SSH-KEY 方式登录
使用方法很简单,ip 端口号不变,自己要改的地方如下图所示:
注意:
1. 图片箭头所指的 “用户密钥” 是 “生成密钥对” 那一步从服务器下载下来的 id_rsa 私钥文件,这就是让你妥善保管私钥的原因!
2. 图片箭头所指的 “密码” 是 “生成密钥对” 那一步中输入的密码!
生成密钥那里没有输入密码直接回车了,到XSHELL上无法登陆