HCRM博客

如何在CentOS中设置SSH免密码登录?

CentOS SSH 免密码登录配置详解

背景介绍

在系统管理和服务器运维中,SSH(Secure Shell)是一种常用的远程登录协议,为了提高工作效率和安全性,许多管理员选择配置 SSH 免密码登录,本文将详细介绍如何在 CentOS 系统中实现 SSH 免密码登录。

如何在CentOS中设置SSH免密码登录?-图1
(图片来源网络,侵权删除)

步骤详解

1、生成密钥对:需要在客户端机器上生成一对公钥和私钥,可以使用sshkeygen 命令来生成密钥对。

   sshkeygen t rsa

按提示操作,可以设置密码保护密钥,也可以直接按回车键接受默认设置

2、复制公钥到服务器:使用sshcopyid 命令将公钥复制到服务器的~/.ssh/authorized_keys 文件中。

   sshcopyid user@server_ip

其中user 是服务器上的用户名,server_ip 是服务器的 IP 地址,如果服务器上没有sshcopyid 命令,可以使用以下命令手动复制公钥:

   ssh user@server_ip "mkdir p ~/.ssh && cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub

3、配置服务器的 SSH 服务:编辑服务器上的/etc/ssh/sshd_config 文件,确保以下配置存在并正确设置:

如何在CentOS中设置SSH免密码登录?-图2
(图片来源网络,侵权删除)
   RSAAuthentication yes
   PubkeyAuthentication yes
   AuthorizedKeysFile .ssh/authorized_keys

修改配置后,需要重启 SSH 服务以使更改生效:

   systemctl restart sshd

4、测试免密登录:从客户端尝试登录服务器,如果一切设置正确,你应该能够无需密码直接登录。

   ssh user@server_ip

通过以上步骤,你可以在 CentOS 系统中成功配置 SSH 免密码登录,这样不仅提高了工作效率,还增强了服务器的安全性,以下是配置过程中的一些关键点:

1、生成密钥对:使用sshkeygen 命令生成公钥和私钥。

2、复制公钥到服务器:使用sshcopyid 或手动复制公钥到服务器的~/.ssh/authorized_keys 文件中。

3、配置服务器的 SSH 服务:确保sshd_config 文件中的相关配置正确,并重启 SSH 服务。

如何在CentOS中设置SSH免密码登录?-图3
(图片来源网络,侵权删除)

4、测试免密登录:验证配置是否成功。

常见问题与解答(FAQs)

Q1: 如果服务器上没有sshcopyid 命令怎么办?

A1: 如果服务器上没有sshcopyid 命令,可以使用以下命令手动复制公钥:

   ssh user@server_ip "mkdir p ~/.ssh && cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub

Q2: 如何禁用密码认证,只允许密钥认证?

A2: 如果希望完全禁用密码认证,只允许密钥认证,可以在sshd_config 文件中添加或修改以下配置:

   PasswordAuthentication no

修改后,重启 SSH 服务即可。

分享:
扫描分享到社交APP
上一篇
下一篇