SSH连接服务器并同步本地文件
1. 复制本地公钥
cat ~/.ssh/id_rsa.pub
如果不确定本地是否有公钥
-
ls ~/.ssh/id_rsa.pub# 如果出现如下,则说明你本地存在公钥 # /Users/username/.ssh/id_rsa.pub
-
若没有公钥,需生成
# 使用下面命令,然后一路回车,注意改为自己的邮箱 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
2. 登录远程服务器
3. 把你复制的公钥添加到服务器指定用户的 SSH 授权中
mkdir -p ~/.ssh
echo "你的公钥粘贴在这里" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
示例
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD..." >> ~/.ssh/authorized_keys
4. 测试是否可以从本地 SSH 登录
ssh yourUserName@34.34.34.34
如果能成功登录,意味着你已经成功通过 SSH 登录服务器 34.34.34.34
,你现在拥有完全访问权限
5. 使用脚本文件同步本地代码到服务器
5.1生成脚本文件 deploy.sh
#!/bin/zsh# === 修改这些变量为你的实际信息 ===
LOCAL_PROJECT_PATH="/Users/wangpengfei/Desktop/project-local" # 本地项目地址
REMOTE_USER="yourUserName" # 服务器登陆用户名
REMOTE_HOST="34.34.34.34" # 服务器IP
REMOTE_PROJECT_PATH="/home/yourUserName/project-remote" # 要同步过去的目标文件夹echo "🚀 开始同步项目到服务器 $REMOTE_HOST..."# 同步代码,排除 .next 和 node_modules 和 .git
rsync -avz --delete \--exclude '.next' \--exclude 'node_modules' \--exclude '.git' \"$LOCAL_PROJECT_PATH/" \"$REMOTE_USER@$REMOTE_HOST:$REMOTE_PROJECT_PATH"echo "✅ 同步完成"
5.2 终端运行脚本文件
./deploy.sh
最终:登录你的服务器查看,此时本地项目 project-local
里的文件应该已经同步到 project-remote
目标文件夹里了。