温馨提示×

如何解决 CentOS SFTP 连接问题

小樊
97
2025-02-08 14:00:22
栏目: 智能运维
Centos服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

要解决CentOS上的SFTP连接问题,可以按照以下步骤进行排查和解决:

1. 检查SSH服务状态

首先,确认SSH服务是否正在运行。可以使用以下命令检查SSH服务的状态:

sudo systemctl status sshd

如果SSH服务未运行,请使用以下命令启动它:

sudo systemctl start sshd

并确保SSH服务在系统启动时自动运行:

sudo systemctl enable sshd

2. 配置SFTP子系统

确保在SSH配置文件 /etc/ssh/sshd_config 中正确配置了SFTP子系统。找到以下行并取消注释(如果存在 # 符号),或者如果不存在则添加它们:

Subsystem sftp /usr/libexec/openssh/sftp-server

或者使用内部SFTP:

Subsystem sftp internal-sftp

保存并关闭文件,然后重新启动SSH服务以使更改生效:

sudo systemctl restart sshd

3. 创建SFTP用户

为了安全起见,建议为SFTP服务创建专门的用户。使用以下命令创建用户:

sudo useradd -m -s /sbin/nologin sftpuser

然后为用户设置密码:

sudo passwd sftpuser

4. 配置用户权限

  • 创建SFTP根目录:为用户创建一个专门的目录用于存放SFTP文件。
sudo mkdir /sftp/sftpuser
sudo chown sftpuser:sftpuser /sftp/sftpuser
sudo chmod 755 /sftp/sftpuser
  • 配置 .ssh 目录和 authorized_keys 文件
sudo mkdir /home/sftpuser/.ssh
sudo cp /etc/ssh/ssh_host_rsa_key /home/sftpuser/.ssh/authorized_keys
sudo chmod 700 /home/sftpuser/.ssh
sudo chmod 600 /home/sftpuser/.ssh/authorized_keys
sudo chown sftpuser:sftpuser /home/sftpuser/.ssh

5. 配置防火墙

确保防火墙允许SSH和SFTP连接。使用以下命令打开SSH端口(默认22):

sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload

6. 测试SFTP连接

使用SFTP客户端连接到服务器。在命令行中输入以下命令,将 your_usernameyour_passwordyour_server_ip 替换为实际的用户名、密码和服务器IP地址:

sftp your_username@your_server_ip

输入密码后,如果连接成功,则表示SFTP配置正确。

7. 常见问题排查

  • 连接失败:检查SSH服务状态、防火墙设置、SFTP配置文件、用户权限等。
  • 权限问题:确保用户主目录和SFTP根目录的权限设置正确。
  • 证书问题:如果使用密钥认证,确保证书路径和权限设置正确。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:CentOS如何解决FileZilla连接问题

0