ssh vue 实现
SSH 连接 Vue 项目部署的服务器
通过 SSH 连接部署 Vue 项目的服务器,通常需要完成以下步骤:
生成 SSH 密钥对 在本地计算机上生成 SSH 密钥对,使用以下命令:
ssh-keygen -t rsa -b 4096
生成的密钥默认存储在 ~/.ssh 目录下,包含 id_rsa(私钥)和 id_rsa.pub(公钥)。
将公钥添加到服务器
将本地生成的公钥内容复制到服务器的 ~/.ssh/authorized_keys 文件中:
ssh-copy-id user@server_ip
如果 ssh-copy-id 不可用,可以手动将公钥内容追加到服务器的 authorized_keys 文件中。
配置 SSH 连接
在本地 ~/.ssh/config 文件中添加服务器配置,简化连接命令:
Host vue_server
HostName server_ip
User username
Port 22
IdentityFile ~/.ssh/id_rsa
保存后可通过 ssh vue_server 快速连接。
Vue 项目部署到服务器
安装 Node.js 和 npm 确保服务器已安装 Node.js 和 npm,可通过以下命令安装:
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
克隆 Vue 项目 使用 Git 克隆项目到服务器:
git clone https://github.com/your-vue-project.git
cd your-vue-project
安装依赖并构建 在项目目录中安装依赖并构建生产环境代码:
npm install
npm run build
配置 Web 服务器
将构建生成的 dist 目录内容部署到 Web 服务器(如 Nginx):
sudo apt-get install nginx
sudo cp -r dist/* /var/www/html/
配置 Nginx 以服务 Vue 项目:
sudo nano /etc/nginx/sites-available/default
确保配置中包含:
server {
listen 80;
server_name your_domain.com;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
重启 Nginx 使配置生效:
sudo systemctl restart nginx
自动化部署脚本
编写部署脚本
创建 deploy.sh 脚本自动化部署流程:
#!/bin/bash
echo "Pulling latest changes from Git..."
git pull
echo "Installing dependencies..."
npm install
echo "Building Vue project..."
npm run build
echo "Copying files to web directory..."
sudo cp -r dist/* /var/www/html/
echo "Deployment complete!"
赋予脚本执行权限:
chmod +x deploy.sh
通过 SSH 远程执行部署 从本地计算机通过 SSH 远程执行服务器上的部署脚本:
ssh vue_server 'cd /path/to/your-vue-project && ./deploy.sh'
安全加固 SSH 连接
修改默认 SSH 端口
编辑服务器的 /etc/ssh/sshd_config 文件,修改 Port 为其他端口(如 2222):
Port 2222
重启 SSH 服务:
sudo systemctl restart sshd
禁用密码认证
在 sshd_config 中设置:
PasswordAuthentication no
ChallengeResponseAuthentication no
仅允许密钥认证提高安全性。
配置防火墙 使用 UFW 防火墙限制 SSH 访问:

sudo ufw allow 2222/tcp
sudo ufw enable
通过以上步骤,可以实现安全的 SSH 连接并高效部署 Vue 项目到远程服务器。






