centos

centos sftp如何使用公钥认证

小樊
48
2025-03-23 16:46:33
栏目: 智能运维

在CentOS系统上设置SFTP公钥认证可以提高安全性并简化用户登录过程。以下是详细的步骤指南:

1. 生成SSH密钥对

首先,你需要在客户端机器上生成SSH密钥对(如果还没有的话)。打开终端并运行以下命令:

ssh-keygen -t rsa -b 4096

按照提示操作,通常会生成两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。你可以选择设置一个密码短语来保护私钥。

2. 将公钥复制到服务器

接下来,你需要将生成的公钥复制到CentOS服务器上的目标用户的~/.ssh/authorized_keys文件中。你可以使用ssh-copy-id命令来完成这一操作:

ssh-copy-id user@server_ip

其中,user是你在服务器上的用户名,server_ip是服务器的IP地址。系统会提示你输入用户的密码。

3. 配置SSH服务器

确保服务器上的SSH配置文件/etc/ssh/sshd_config允许公钥认证。打开文件并确保以下配置项存在且未被注释:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

如果你希望限制只有SFTP访问权限,可以添加或修改以下配置:

Subsystem sftp /usr/libexec/openssh/sftp-server
Match Group sftpusers
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

4. 创建SFTP用户组(可选)

如果你希望限制某些用户只能使用SFTP,可以创建一个专门的用户组并添加相关用户:

sudo groupadd sftpusers
sudo usermod -aG sftpusers username

其中,username是你要添加到SFTP用户组的用户名。

5. 重启SSH服务

完成上述配置后,重启SSH服务以使更改生效:

sudo systemctl restart sshd

6. 测试SFTP连接

现在,你可以尝试从客户端机器连接到服务器并使用SFTP:

sftp username@server_ip

系统会提示你输入密码(如果你设置了密码短语,需要输入)。成功连接后,你应该能够使用SFTP命令进行文件传输。

注意事项

通过以上步骤,你应该能够在CentOS系统上成功设置SFTP公钥认证。

0
看了该问题的人还看了