Skip to content

远程开发

免密登录

使用 ssh 免密登录可以减少每次登录服务器输入密码的麻烦,后面讲到的 FTP 同步与远程开发,都需要以免密登录为前提。

创建服务器帐号

root 帐号登录服务器并添加普通帐号

sudo useradd -m bm

修改密码

sudo passwd bm

删除帐号

sudo userdel -r bm

配置 SSH 帐号

首先需要配置 ssh 连接,这样可以免密码登录到服务器,如果你配置失败可以省略这一步,只不过登录时每次就要输入密码了。

  1. 生成密钥,如果本地已经有了就不要生成了(重复生成会让原来的 GIT 提交等失效),会提示 Overwrite (y/n)? 选择 n

    ssh-keygen -t rsa
  2. 将密钥添加到远程服务器

    ssh-copy-id bm@192.168.31.90
  3. 现在登录就不需要密码了

    ssh bm@192.168.31.90
  4. 编辑 vim ~/.ssh/config 文件添加以下内容

    Host banmashou
    Hostname 192.168.31.90
    Port 22
    User bm

现在直接使用 ssh banmashou 就可以登录服务器了

如果还不能登录将宿主机(mac 或 windows) ~/.ssh/known_hosts 文件中该 LINUX 服务器的记录行删除

FTP 同步

虽然 VSCODE 可以远程开发,但是对于远程服务器配置比较低的情况会造成严重的卡顿,更可造成服务器死机。使用 SFTP 插件可以较好的解决这个问题。

同时该插件提供了文件监控,即有新增或修改文件时会自动同步,该特性比较适合于前端编译时生成的文件自动上传。

安装插件

首先安装 SFTP 插件

配置说明

下面对配置文件中的配置项进行说明

配置说明
name用于标识配置的名称
host主机地址
protocol使用协议,支持 sftp 与 ftp
port端口号
username远程服务器用户名
remotePath远程服务器同步目录
password远程帐号密码,password 与 privateKeyPath 二选一
privateKeyPath用户 SSH 私钥的路径,请查看斑马兽关于免密登录的文档
uploadOnSave自动上传文件

watcher 配置用于监控外部文件修改,设置为 false 时监控所有文件,下面来进行说明。

选项说明
"files": "public/**"监控 public 目录下的所有文件
"files": "dist/*.{js,css}"监控 dist 目录下的所有 js 与 css 文件
autoUpload本地文件变化后,自动上传到远程服务器
autoDelete本地删除后,自动删除远程文件

FTP

因为配置简单所以使用 FTP 上传是推荐的方式。

使用 ctrl+shift+p 调用命令输入窗口,选择 SFTP:Config 选项进行配置,下面是一个配置文件示例

下面是 ftp 的配置项,其中 connectTimeout 配置项可以尝试调小,这样可以提升传输速度。

{
    "name": "dev.bmcms.com",
    "host": "dev.bmcms.com",
    "protocol": "ftp",
    "port": 21,
    "username": "帐号",
    "password": "密码",
    "remotePath": "/",
    "uploadOnSave": true,
    "connectTimeout": 500,
    "watcher": {
        "files": "**/*",
        "autoUpload": true,
        "autoDelete": true
    },
    "ignore": [".vscode", ".git", "node_modules", ".env", "storage", "data"]
}

SFTP

SFTP 是使用服务器系统帐号进行文件上传。

使用 ctrl+shift+p 调用命令输入窗口,选择 SFTP:Config 选项进行配置,下面是一个配置文件示例

{
    "name": "dev.bmcms.com",
    "host": "dev.bmcms.com",
    "protocol": "sftp",
    "port": 22,
    "username": "hj",
    "remotePath": "/www/wwwroot/dev.bmcms.com",
    "privateKeyPath": "/Users/bm/.ssh/id_rsa",
    "uploadOnSave": true,
    "watcher": {
        "files": "**/*",
        "autoUpload": true,
        "autoDelete": true
    },
    "ignore": [".vscode", ".git", "node_modules", ".env", "storage"]
}

注意:这里填写的帐号是系统帐号,而不是虚拟主机(如宝塔面板)的 FTP 帐号。

下面将主要参数进行说明

参数说明
name配置名
host远程主机地址
username远程服务器登录帐号
remotePath远程服务器目录
privateKeyPath本地 SSH 密钥文件
uploadOnSave保存自动上传
files监听的文件 ** 指包括子目录
autoUpload保存后自动上传
autoDelete本地删除后服务器也删除
ignore不上传的文件夹,包括保存与右键上传时都不上传

添加帐号

登录远程服务器并添加系统帐号和设置帐号密码

#添加帐号
sudo useradd bm

#设置密码
sudo passwd bm

更改网站目录权限使新帐号可以进行写入操作。

sudo chmod 0777 /www/wwwroot/dev.bmcms.com