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

如何在FTP远程服务器运行Node.js应用?SSH连接遇权限问题

问题解决方案

核心结论:FTP无法直接运行Node.js应用

FTP仅作为文件传输协议,只负责文件的上传与下载,没有执行命令、启动进程的权限,必须通过远程终端(SSH)登录服务器才能运行Node.js应用。

解决SSH连接失败(Permission denied (publickey))的方法

方法1:开启服务器的密码登录(若可行)

如果能通过服务商提供的网页控制台等方式登录服务器,按以下步骤操作:

  1. 编辑SSH配置文件:/etc/ssh/sshd_config,找到PasswordAuthentication项,将其值改为yes。
  2. 重启SSH服务:systemctl restart sshd(适用于Ubuntu、CentOS 7+等使用systemd的系统)。
    完成后即可用PowerShell或Putty通过用户名+密码直接SSH登录:
ssh your_username@host_ip_address

按提示输入密码即可进入终端。

方法2:生成并配置SSH密钥对

如果服务器强制要求公钥登录,执行以下步骤:

  1. 在本地PowerShell中生成密钥对:
ssh-keygen -t rsa

一路按回车(无需设置密钥密码也可),执行完成后,你的本地用户目录下会自动生成.ssh文件夹,里面包含id_rsa(私钥,本地保留)和id_rsa.pub(公钥,需上传到服务器)。
2. 用WinSCP将id_rsa.pub上传到远程服务器的~/.ssh/目录下(若服务器无.ssh文件夹,先创建一个)。
3. 在服务器终端(网页控制台或其他可登录方式),将公钥内容追加到授权文件:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 设置正确的权限(否则SSH会拒绝使用密钥):
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

之后即可用PowerShell或Putty直接通过密钥登录服务器。

文件传输协议选择建议

优先使用SFTP协议:

  • SFTP基于SSH协议,比FTP更安全,且WinSCP支持SFTP连接,连接成功后可通过顶部菜单栏的「命令」→「打开终端」直接调用SSH终端,传完文件就能立即运行应用。
  • 若只能使用FTP,传完文件后仍需解决SSH登录问题才能启动应用。

启动Node.js应用的步骤

  1. 登录服务器终端后,进入应用上传目录:
cd /path/to/your/node/app
  1. 安装项目依赖(若项目存在package.json):
npm install
  1. 启动应用:
  • 临时启动:node your-entry-file.js(例如node app.js)
  • 后台持久运行(推荐):先安装进程管理工具pm2,再启动应用:
npm install -g pm2
pm2 start your-entry-file.js

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:57:37