You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Platform VM使用FileZilla SFTP传输文件遇权限拒绝问题求助

解决GCP VM SFTP权限拒绝(非root密钥登录)的方案

方法1:使用现有非root用户操作,调整目标目录权限

如果不需要root权限,直接用当前SSH对应的用户完成传输:

  • 先确认目标目录的权限,比如要传输到/var/www/html,执行以下命令给该目录添加当前用户的读写权限:
    sudo chown -R $USER:$USER /var/www/html
    sudo chmod -R 755 /var/www/html
    
  • 之后在FileZilla中用当前非root用户登录SFTP,直接传输文件到该目录即可。

方法2:允许root用户的SFTP登录(不推荐,仅临时场景使用)

如果必须通过root操作,可修改SSH配置开启root登录:

  1. 登录VM,编辑SSH配置文件:
    sudo nano /etc/ssh/sshd_config
    
  2. 找到PermitRootLogin项,修改为:
    PermitRootLogin yes
    
    (若设置为prohibit-password也可,只要不是no)
  3. 重启SSH服务使配置生效:
    sudo systemctl restart sshd
    
  4. 为root设置密码(GCP默认root无密码):
    sudo passwd root
    
  5. 可选:将当前用户的SSH密钥添加到root的授权列表,避免密码登录:
    sudo cp ~/.ssh/authorized_keys /root/.ssh/
    sudo chown root:root /root/.ssh/authorized_keys
    sudo chmod 600 /root/.ssh/authorized_keys
    

完成后即可在FileZilla中用root用户登录SFTP。

方法3:通过sudo提升权限传输(安全推荐方案)

无需开启root登录,通过配置让SFTP操作自动以root权限执行:

  1. 编辑SSH配置文件:
    sudo nano /etc/ssh/sshd_config
    
  2. 修改或添加Subsystem行:
    Subsystem sftp sudo /usr/lib/openssh/sftp-server
    
  3. 重启SSH服务:
    sudo systemctl restart sshd
    
  4. 给当前用户添加无需密码执行sftp-server的权限,编辑sudoers文件:
    sudo visudo
    
    添加以下内容(替换your_username为实际用户名):
    your_username ALL=(ALL) NOPASSWD: /usr/lib/openssh/sftp-server
    
  5. 之后在FileZilla中用当前用户登录SFTP,所有文件操作都会自动以root权限执行,避免权限拒绝问题。

内容的提问来源于stack exchange,提问作者AmIAProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:15:36