Featured image of post Centos设置用私钥证书登录服务器

Centos设置用私钥证书登录服务器

增加证书登录 要在 CentOS 中使用私钥进行 SSH 登录,您需要完成以下步骤: 生成 SSH 密钥对:使…

增加证书登录

要在 CentOS 中使用私钥进行 SSH 登录,您需要完成以下步骤:

  1. 生成 SSH 密钥对:使用 ssh-keygen 命令生成密钥对。生成方法有很多,putty、xhell、mobaxterm 都自带生成。Centos 设置用私钥证书登录服务器 例如,输入以下命令并按照提示操作:

  2. ssh-keygen -t rsa -b 4096

  3. 在目标服务器上将公钥添加到您的授权密钥列表中:将您生成的公钥内容添加到目标服务器上的 ~/.ssh/authorized_keys 文件中,就是将 id_rsa.pub 重命名为 authorized_keys。

  4. 配置 SSH 服务以使用证书进行身份验证。要做到这一点,需要首先修改 SSH 的配置文件 /etc/ssh/sshd_config,并启用 Public Key Authentication,将参数设置为“yes”。

  5. 更新 SSH 服务配置后,重启 sshd 服务,以使更改生效。可以使用以下命令重启 sshd:

  6. systemctl restart sshd

  7. 然后,在客户端电脑上,也就是用于登录目标服务器的电脑上,需要将证书文件保存在用户的 SSH 文件夹中(默认是 ~/.ssh)。

  8. 最后,使用类似以下的命令来连接目标服务器:

  9. ssh -i /path/to/private_key user@server_ip

其中,/path/to/private_key 是证书文件的路径,user 是用户名,server_ip 是目标服务器的 IP 地址。


只允许证书登录

上面已经说过证书登录。那么如何禁用密码登录,只允许证书登录呢?

在 CentOS 中,可以通过修改 SSH 服务的配置文件 /etc/ssh/sshd_config,来设置只允许证书登录。具体步骤如下:

  1. 使用 root 用户登录到 CentOS 服务器上。

  2. 打开 SSH 服务的配置文件 /etc/ssh/sshd_config,并找到下面两行:

  3. #PubkeyAuthentication yes

  4. #PasswordAuthentication yes

  5. 将 #PubkeyAuthentication yes 这一行的注释符 # 去掉,并将 yes 修改为 only,即:

  6. PubkeyAuthentication yes

这里的意思是只允许使用公钥(证书)进行身份认证,不再接受密码方式的登录。

  1. 将 #PasswordAuthentication yes 这一行的注释符 # 去掉,并将 yes 修改为 no,即:

  2. PasswordAuthentication no

这里的意思是禁止使用密码方式进行身份认证。

  1. 保存并关闭文件。
  2. 重启 SSH 服务,以使设置生效。可以使用以下命令重启 SSH 服务:

systemctl restart sshd

设置完成后,只有拥有相应私钥(证书)的用户才能够登录到 CentOS 服务器。如果没有相应私钥,则无法登录。

转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
使用 Hugo 构建
主题 StackJimmy 设计