这篇文章上次修改于 303 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

由于 Windows 上的文件有些乱, 所以打算在 Linux 上部署项目.

安装

拓展里面下载一个官方出的叫 Remote - SSH 的插件, 然后照着来即可.

本来应该是这样的, 奈何我在本地部署的时候卡在了一个奇葩的地方: bash not found. 众所周知正常 Linux 上是不可能没有这个东西的, 然而就是碰到了. 好在服务器部署的时候一切正常, 仔细对照发现是缺少了需要的环境变量.

安装需要用到的 bash 环境是 /bin/bash, 但我们平时用的却是 /usr/bin/bash.
这二者还是有一点区别的.

加上环境变量后一切正常.
sudo vim /etc/environment

+ PATH=$PATH:/bin

值得一提的是我这个问题就连搜索引擎都找不到相同的, 唯一一个也出现 bash not found 的还是因为用了阴间设备真的没 bash 环境. 剩下的就是其他问题我也没碰到而且解决办法也不适用.

免密登录

每次登录都需要手动输入密码很麻烦, 特别是公网服务器的高强度密码. 本地自签密钥对然后把公钥丢服务器就能实现自动登录啦!

首先 Windows 下自签密钥对:

cd c:
cd ~
ssh-keygen

然后按照提示下一步, 如果内网环境直接全部不输入回车也是没问题的. 然后在 ~\.ssh 下会生成两个文件 id_rsa 和 id_rsa.pub.

然后想办法把 id_rsa.pub 文件丢到服务器.

Linux 下:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys # 或者其他方式,比如说 echo / cp / vim / tee
chmod 600 ~/.ssh/authorized_keys

VSCode 配置:

打开 ~\.ssh\config 文件,在对应的主机下面添加一行

Host 10.0.0.1
  HostName 10.0.0.1
  User kazusa
+ IdentityFile "~\.ssh\id_rsa"

如果有多台主机很明显只需要手动改一下本地的文件名存放多份文件即可.

权限问题

以我这个发行版为例, Web 服务主要是用 http 用户跑的, 如果不用 root 登录可能会出现权限问题, 即使用 root 也会出现权限问题. 简单点就是把所有项目改为 777 权限, 因为 1000 用户组和 33 用户组互相不能写对方组的文件.

结束, 开始丝滑体验~