CentOS SSH 免密码登录配置详解
背景介绍
在系统管理和服务器运维中,SSH(Secure Shell)是一种常用的远程登录协议,为了提高工作效率和安全性,许多管理员选择配置 SSH 免密码登录,本文将详细介绍如何在 CentOS 系统中实现 SSH 免密码登录。
步骤详解
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
文件,确保以下配置存在并正确设置:
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 服务。
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 服务即可。