1. 介绍
介绍一下,如何在自己的CentOS 8 中禁止账户密码登录,改为秘钥登录。来提高服务器的安全等级。
如果,你的服务器通过lastb
命令可以查到大量的ip登录记录。甚至每天都有上万条的ssh攻击访问。
那么可以通过调整SSH的登录方式防范攻击,提高服务器账户安全性。
主要方法很简单,可以归纳为以下3个步骤:
- 创建RSA秘钥: 秘钥登录实际上就是使用的RSA非对称加密得到的公私钥。
- 配置SSH登录规则:可以禁止重复登录次数,禁止密码登录改为秘钥登录模式。
- 重启SSH: 让配置的规则生效。
下面来介绍整个步骤。
2. 操作步骤
操作步骤尽量写明白一些。让新手也可以直接了解如何操作。
2.1 创建秘钥
前面已经说了SSH的秘钥登录,其实使用的是RSA非对称加密算法的公钥和私钥来实现的。
主要步骤就是将公钥 id_rsa.pub
文件配置到服务器上。客户端使用id_rsa
私钥文件进行登录。
是不是有一种很熟悉的既视感?没错,这一套的逻辑和Git的秘钥登录是一样的。
所以,我们其实完全可以使用自己的Git上的秘钥的生成方式来实现。
这种方式也是很多文章中介绍的在个人电脑本地创建一个秘钥,然后导入到服务器中。
但是我们也可以直接在服务器上创建,也是很简单的。
第一步: 输入ssh-keygen
命令,开始进行创建秘钥。
[root@iZuf63t ~]# ssh-keygen
然后会输出如下信息:
[root@iZuf63t ~]# ssh-keygen
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: // 这一步是密码二次验证,如果上一步没有添加密码,可以直接回车。
等待秘钥生成完毕。 如果我们没有调整目录的话,就会在.ssh/
目录下看到id_rsa
和id_rsa.pub
两个新增的文件了。
同时,我们可以看到该目录下还有一个authorized_keys
的文件。这个其实是ssh默认的读取公钥的配置文件。
我们可以自己创建一个新文件,也可以继续使用该文件。这里我们可以保持默认的。
我们将公钥id_rsa.pub
内容复制到authorized_keys
文件中。
ps:请确定当前是否在.ssh目录中。 如果不在的话,下面的命令需要填充路径。如果在可以省略.
[root@iZuf63t .ssh]# cat id_rsa.pub >> authorized_keys
到这一步的时候。我们其实就配置完秘钥了。
可以将id_rsa
私钥文件从服务器中拷贝到本地电脑中。并删除掉服务器中的id_rsa
私钥文件了。
2.1.1 文件权限
有些情况下,我们可能没有.ssh
文件夹。或者我们不是管理员账户,没有.ssh
文件夹或authorized_keys
的访问权限等。可以通过chmod
命令,配置相关的权限。
赋予文件夹相关权限。
[root@iZuf63t ~]# chmod 700 ~/.ssh
赋予authorized_keys相关权限。
[root@iZuf63t .ssh]# chmod 600 authorized_keys
2.2 配置sshd_config
当我们的秘钥准备就绪后,就需要调整SSH服务的配置,将默认的允许密码登录调整为允许秘钥登录。
[root@iZuf63t .ssh]# vim /etc/ssh/sshd_config
在打开的sshd_config
配置文件中修改以下几项内容:
RSAAuthentication yes # 启用RSA认证功能。
PubkeyAuthentication yes #启用公钥认证
AuthorizedKeysFile .ssh/authorized_keys #确保公钥证书文件路径是我们的公钥配置路径。默认是不需要调整的
配置以上信息以后,我们就可以保存修改。
2.2.1 关闭密码登录
这一步骤,建议验证秘钥登录可正常使用后,再修改sshd_config
中的配置,禁止使用密码登录。否则秘钥出现错误后。我们的密码登录也无法访问。那时候就比较尴尬了。
禁止密码登录也很简单,将sshd_config
文件中的以下内容,设置为no
即可:
PasswordAuthentication no # 禁止使用密码进行登录
2.3 重启SSH服务
最后,就是比较简单的重启服务指令。让我们的配置生效了。
[root@iZuf63t .ssh]# service sshd restart
很快就能重启成功了。现在我们就可以使用秘钥进行远程登录。
3. 秘钥登录
以xshell为例,介绍如何使用秘钥登录。
我们创建一个会话管理以后,在配置用户身份验证时。原先需要输入用户名和密码,并勾选Passord。
现在我们只需要输入用户名,在方法栏勾选Public Key
然后,点击右侧的设置按钮,将我们从服务器中下载的id_rsa
文件加载进去。如果我们创建秘钥时输入过密码,那么在密码栏中就需要输入我们创建时设置的密码。如果我们创建秘钥时直接按的回车,没有输入密码。
那么这个地方保持为空即可。
然后点击确定。 就配置完毕了。后面就可以愉快的使用秘钥进行ssh远程登录。
如果原先没有配置过秘钥登录方式的小伙伴。建议赶紧尝试一下吧。可有效提高服务器登录安全性。密码容易被暴力轮询进行破解。而秘钥的安全性就高太多了。
评论区