在CentOS系统中配置SSH公钥认证可以提高安全性并简化登录过程。以下是详细的步骤:
首先,在本地机器上生成SSH密钥对(如果还没有的话)。打开终端并运行以下命令:
ssh-keygen -t rsa -b 4096
按照提示操作:
~/.ssh/id_rsa
)。使用ssh-copy-id
命令将公钥复制到远程服务器的~/.ssh/authorized_keys
文件中。假设远程服务器的IP地址是192.168.1.100
,用户名是user
:
ssh-copy-id user@192.168.1.100
按照提示输入密码。
确保远程服务器的SSH配置允许公钥认证。编辑远程服务器上的/etc/ssh/sshd_config
文件:
sudo vi /etc/ssh/sshd_config
找到并修改以下配置项:
PubkeyAuthentication yes
:启用公钥认证。AuthorizedKeysFile .ssh/authorized_keys
:指定公钥文件的位置(通常是默认值)。PasswordAuthentication no
:禁用密码认证(可选,但推荐以提高安全性)。保存并退出编辑器,然后重启SSH服务:
sudo systemctl restart sshd
现在,尝试从本地机器通过SSH连接到远程服务器:
ssh user@192.168.1.100
如果一切配置正确,你应该能够无需输入密码直接登录。
为了进一步提高安全性,可以在本地机器的~/.ssh/config
文件中配置SSH客户端。例如:
Host myserver
HostName 192.168.1.100
User user
IdentityFile ~/.ssh/id_rsa
这样,你只需要运行ssh myserver
就可以连接到远程服务器。
确保防火墙允许SSH连接。如果你使用的是firewalld
,可以运行以下命令:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
如果你使用的是iptables
,可以添加相应的规则:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
通过以上步骤,你应该能够在CentOS系统上成功配置SSH公钥认证。