centos

CentOS SFTP如何启用公钥认证

小樊
44
2025-03-19 16:03:22
栏目: 智能运维

在CentOS上启用SFTP公钥认证,可以按照以下步骤进行操作:

1. 安装必要的软件包

首先,确保你的系统上安装了openssh-serveropenssh-clients。如果没有安装,可以使用以下命令进行安装:

sudo yum install openssh-server openssh-clients

2. 配置SSH服务器

编辑SSH配置文件/etc/ssh/sshd_config,启用公钥认证并禁用密码认证(可选)。

sudo vi /etc/ssh/sshd_config

在文件中找到以下行并进行修改:

PubkeyAuthentication yes
PasswordAuthentication no  # 如果你希望完全禁用密码认证

保存并退出编辑器。

3. 创建用户和目录

确保你有一个用户账户,并且该用户的家目录存在。如果没有,可以使用以下命令创建:

sudo useradd -m your_username
sudo passwd your_username

4. 生成SSH密钥对

在客户端机器上生成SSH密钥对(如果还没有)。使用以下命令:

ssh-keygen -t rsa -b 4096

按照提示操作,生成密钥对。默认情况下,密钥会存储在~/.ssh/id_rsa~/.ssh/id_rsa.pub

5. 将公钥复制到服务器

将客户端的公钥复制到服务器用户的~/.ssh/authorized_keys文件中。可以使用以下命令:

ssh-copy-id your_username@your_server_ip

系统会提示你输入服务器用户的密码。成功后,公钥会被添加到服务器的authorized_keys文件中。

6. 重启SSH服务

为了使配置生效,需要重启SSH服务:

sudo systemctl restart sshd

7. 测试SFTP连接

现在,你可以尝试使用SFTP连接到服务器,验证公钥认证是否成功:

sftp your_username@your_server_ip

如果一切配置正确,你应该能够无需密码直接登录。

8. 配置防火墙(可选)

确保防火墙允许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系统应该已经成功启用了SFTP公钥认证。

0
看了该问题的人还看了