Mac 连接火山引擎 ECS:SSH 密钥配置与文件互传完整教程

发布时间:2026/6/23 19:21:29
Mac 连接火山引擎 ECS:SSH 密钥配置与文件互传完整教程 适用环境macOS 火山引擎Volcengine云服务器Ubuntu 等 Linux 镜像本文使用示例 IP、主机名与密钥名称请替换为你自己的信息。写在前面云服务器默认不让你随便登录常见做法是SSH 密钥对你在 Mac 上保管私钥服务器上只存公钥。配对成功之后可以终端远程登录服务器用scp/rsync传文件用 Cyberduck 等工具图形化拖拽上传下载用 Cursor / VS Code 的 Remote-SSH 远程写代码下面以「Mac 生成密钥 → 控制台导入公钥 → 绑定实例 → 本机配置 → 传文件」为主线走一遍完整流程。一、先分清几个概念名词在哪能不能给别人私钥Mac 的~/.ssh/id_ed25519❌ 绝对不能公钥Mac 的~/.ssh/id_ed25519.pub✅ 可以上传到云平台authorized_keys服务器~/.ssh/authorized_keys系统自动维护一般不用手改密钥对控制台火山引擎「密钥对」页面绑定后会把公钥注入实例常见误区在服务器上找「本机公钥文件」——不对。正确做法是在本机复制公钥交给云平台或写入服务器 authorized_keys。二、Mac 上生成 SSH 密钥打开终端Terminal执行ssh-keygen-ted25519-Cyour-comment提示保存路径时直接回车默认~/.ssh/id_ed25519passphrase 可留空个人学习机或设置密码更安全查看公钥后面要复制整一行cat~/.ssh/id_ed25519.pub输出类似ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... your-comment若你已有密钥且不想覆盖可换文件名例如-f ~/.ssh/cloud_ed25519后文IdentityFile改成对应路径即可。三、火山引擎控制台导入公钥并绑定实例3.1 创建密钥对导入公钥登录 火山引擎控制台进入云服务器 ECS→密钥对点击创建密钥对选择导入公钥不要选「自动创建」除非你打算下载.pem并妥善保管名称填一个好记的例如mac-laptop-key公钥内容粘贴上一步id_ed25519.pub的完整一行确认创建3.2 绑定到目标实例进入实例列表找到你的 ECS更多操作 →绑定密钥对或实例详情里「密钥对」相关入口选择刚创建的mac-laptop-key按控制台提示重启实例很多厂商绑定后必须重启才生效3.3 确认安全组放行 SSH实例 →安全组→入方向规则确保有TCP 22端口放行来源可以是你的办公 IP学习阶段也可能是0.0.0.0/0生产环境请收紧3.4 确认登录用户名不同镜像默认用户不同常见镜像默认 SSH 用户UbuntuubuntuCentOSroot或centosDebianadmin或debian不确定时看控制台远程连接说明或镜像文档。四、本机测试 22 端口是否可达把公网IP换成实例详情里的弹性公网 IP示例用文档保留地址勿当真nc-zv-w5203.0.113.1022看到succeeded表示网络与安全组层面22 端口通还不代表密钥已配对成功。五、配置~/.ssh/config强烈推荐编辑没有就新建~/.ssh/configHost my-cloud-server HostName 203.0.113.10 User ubuntu IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes说明Host本机别名随便起名例如volc-prod、blog-serverHostName公网 IP或域名User上一步确认的登录用户IdentityFile私钥路径IdentitiesOnly yes只用指定密钥避免 ssh-agent 里别的 key 干扰设置权限SSH 要求配置文件权限够严chmod600~/.ssh/configchmod600~/.ssh/id_ed25519六、登录测试sshmy-cloud-server首次会提示The authenticity of host ... cant be established. Are you sure you want to continue connecting (yes/no)?输入yes回车。成功则进入服务器 shell。也可不依赖 config直接ssh-i~/.ssh/id_ed25519 ubuntu203.0.113.10七、文件互传7.1 scp简单拷贝上传到服务器scp-r./local-folder my-cloud-server:/home/ubuntu/从服务器下载scp-rmy-cloud-server:/home/ubuntu/remote-folder ./local-folder7.2 rsync推荐支持增量与进度上传rsync-avz--progress-essh./local-folder/ my-cloud-server:/home/ubuntu/remote-folder/下载rsync-avz--progress-esshmy-cloud-server:/home/ubuntu/remote-folder/ ./local-folder/注意目录同步时源路径末尾的/会影响「拷贝目录本身还是目录内容」上面示例是常见写法。7.3 图形界面CyberduckMac安装 Cyberduck新建连接SFTP服务器公网 IP端口 22用户名ubuntuSSH Private Key选择~/.ssh/id_ed25519连接后可像 Finder 一样拖拽文件也可导出/导入.duck书签文件方便下次一键连接书签里不要提交私钥只存主机信息。八、可选本地「待上传 / 已下载」工作区习惯上可以在项目里建一个专用目录例如cloud-sync/ ├── to-server/ # 待上传 ├── from-server/ # 已下载 └── config.json # 记录 SSH 别名、远端路径日常流程文件丢进to-server/点脚本或小型 GUI 一键rsync到服务器核心仍是SSH 别名 rsyncGUI 只是少敲几次命令。九、Cursor / VS Code Remote-SSH安装Remote - SSH扩展CmdShiftP→Remote-SSH: Connect to Host…选择config里的my-cloud-serverOpen Folder选服务器上的项目目录如/home/ubuntu/app不要远程打开~/.ssh、~/.cursor-server等系统目录当工程根目录。十、常见问题排查现象可能原因处理Connection timed out安全组未放行 22、IP 填错、实例未运行查安全组与公网 IPConnection refusedsshd 未启动或端口不是 22控制台 VNC 登录检查sshdPermission denied (publickey)公钥未绑定、未重启、User 错、本机私钥不对重新绑定密钥并重启核对User与IdentityFile公钥复制不完整导入时缺头缺尾、中间换行重新cat ~/.ssh/id_ed25519.pub整行复制绑定新密钥后密码也不能登部分云厂商绑定密钥后会禁用密码登录以密钥为准或用控制台 VNC 修复调试时可看详细日志ssh-vmy-cloud-server十一、安全建议生产环境私钥绝不进 Git、不进博客、不贴聊天窗口安全组22 端口尽量只放行固定 IP而不是全网开放定期ssh-keygen轮换离职机器及时在控制台解绑旧公钥服务器启用ufw或云防火墙只开必要端口重要数据传前可打包加密或使用sftpover 已建立的 SSH 隧道十二、流程小结Mac 生成密钥对 ↓ 复制 .pub 公钥 ↓ 火山引擎「导入公钥」创建密钥对 ↓ 绑定 ECS 实例 → 重启 ↓ 安全组放行 TCP 22 ↓ ~/.ssh/config 写 Host 别名 ↓ ssh 登录成功 ↓ scp / rsync / Cyberduck 传文件按以上步骤Mac 与火山引擎 ECS 之间就能稳定建立 SSH 连接并完成文件互传。若你使用阿里云、腾讯云控制台名词略有不同但「本机私钥 云端公钥 authorized_keys」这一套逻辑完全一致。文档中的 IP如 203.0.113.10、主机别名my-cloud-server、密钥名称均为示例请替换为你自己的环境信息。