插件窝 干货文章 Linux如何用root用户连接FTP,SFTP

Linux如何用root用户连接FTP,SFTP

root 使用 vsftpd 连接 487    来源:    2025-05-11

Linux 使用 root 用户连接 FTP/SFTP 的配置方法

使用 root 用户连接 FTP

1. 修改 vsftpd 配置 (如果使用 vsftpd)

sudo nano /etc/vsftpd.conf

找到并修改以下参数:

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

然后在 /etc/vsftpd.userlist 文件中添加 root 用户:

echo "root" | sudo tee -a /etc/vsftpd.userlist

重启 vsftpd 服务:

sudo systemctl restart vsftpd

2. 使用命令行连接 FTP

ftp localhost
# 或
ftp your_server_ip

然后输入 root 用户名和密码。

使用 root 用户连接 SFTP

1. 修改 SSH 配置允许 root 登录

sudo nano /etc/ssh/sshd_config

找到并修改以下参数:

PermitRootLogin yes

重启 SSH 服务:

sudo systemctl restart sshd

2. 使用命令行连接 SFTP

sftp root@your_server_ip

然后输入 root 密码。

安全注意事项

  1. 强烈建议不要直接使用 root 用户连接 FTP/SFTP,这是安全风险极高的操作
  2. 更好的做法是:

    • 创建普通用户并授予必要的权限
    • 使用 sudo 提权执行需要 root 权限的操作
    • 如果需要 root 权限访问文件,可以配置适当的文件权限
  3. 如果必须使用 root,请:

    • 限制 root 只能通过 SFTP 连接(比 FTP 更安全)
    • 使用 SSH 密钥认证而非密码
    • 限制 root 登录的 IP 地址

替代方案

更安全的替代方案是配置 chroot 环境的 SFTP:

sudo nano /etc/ssh/sshd_config

添加以下配置:

Match User root
    ForceCommand internal-sftp
    ChrootDirectory /root
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no

然后重启 SSH 服务:

sudo systemctl restart sshd

这样 root 用户只能使用 SFTP 而不能使用 SSH shell 登录。