侧边栏壁纸
  • 累计撰写 416 篇文章
  • 累计创建 65 个标签
  • 累计收到 150 条评论

目 录CONTENT

文章目录

CentOS 8 开启SSH秘钥登录

Z同学
2024-03-14 / 0 评论 / 1 点赞 / 205 阅读 / 1,608 字
温馨提示:
本文最后更新于 2024-03-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 介绍

介绍一下,如何在自己的CentOS 8 中禁止账户密码登录,改为秘钥登录。来提高服务器的安全等级。

如果,你的服务器通过lastb 命令可以查到大量的ip登录记录。甚至每天都有上万条的ssh攻击访问。

那么可以通过调整SSH的登录方式防范攻击,提高服务器账户安全性。

主要方法很简单,可以归纳为以下3个步骤:

  1. 创建RSA秘钥: 秘钥登录实际上就是使用的RSA非对称加密得到的公私钥。
  2. 配置SSH登录规则:可以禁止重复登录次数,禁止密码登录改为秘钥登录模式。
  3. 重启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_rsaid_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

image-1710386292452

然后,点击右侧的设置按钮,将我们从服务器中下载的id_rsa文件加载进去。如果我们创建秘钥时输入过密码,那么在密码栏中就需要输入我们创建时设置的密码。如果我们创建秘钥时直接按的回车,没有输入密码。

那么这个地方保持为空即可。

image-1710386315772

然后点击确定。 就配置完毕了。后面就可以愉快的使用秘钥进行ssh远程登录。

如果原先没有配置过秘钥登录方式的小伙伴。建议赶紧尝试一下吧。可有效提高服务器登录安全性。密码容易被暴力轮询进行破解。而秘钥的安全性就高太多了。

1

评论区