macOS 一键免密登录阿里云 ECS:SSH 密钥对认证完整指南

🚀 macOS 一键免密登录阿里云 ECS:SSH 密钥对认证完整指南

在 macOS 上实现 免密登录阿里云 ECS 服务器 ,核心原理是使用 SSH 密钥对认证 :将本地生成的公钥上传到服务器的 ~/.ssh/authorized_keys 文件中,之后 SSH 登录时系统会自动使用私钥完成认证,无需输入密码。

本教程适用于 macOS 终端或 iTerm2 用户,步骤清晰、命令可复制,助你快速实现安全高效的免密登录!


🔧 前置准备:配置阿里云安全组

在开始前,请确保你的 ECS 实例安全组 已放行来自你 Mac 本地 IP 的 22 端口(SSH)入方向流量

✅ 操作路径:

阿里云控制台 → 云服务器 ECS → 实例 → 安全组 → 配置规则 → 添加入方向规则

  • 协议类型:SSH (22)
  • 授权对象:填写你的公网 IP(或 0.0.0.0/0 测试用,生产环境不推荐)

✅ 步骤 1:在 Mac 上生成 SSH 密钥对(如尚未生成)

打开 终端(Terminal 或 iTerm2),执行以下命令:

bash 复制代码
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 按回车使用默认路径(~/.ssh/id_rsa
  • 不要设置密码(passphrase) → 直接连续按回车(否则仍需输密码)
  • 生成后将在 ~/.ssh/ 目录下得到两个文件:
    • id_rsa(私钥,严禁泄露!
    • id_rsa.pub(公钥,用于上传服务器)

💡 查看是否已有密钥:

bash 复制代码
ls ~/.ssh/

✅ 步骤 2:将公钥上传到阿里云 ECS

方法一:使用 ssh-copy-id(推荐 ✅ 最简单)

bash 复制代码
ssh-copy-id root@你的服务器公网IP
  • 首次运行会提示输入 ECS 的 root 密码
  • 成功后自动将公钥追加到服务器的 ~/.ssh/authorized_keys

⚠️ 若提示 command not found: ssh-copy-id,请先安装:

bash 复制代码
brew install ssh-copy-id

(需已安装 Homebrew


方法二:手动上传(无 ssh-copy-id 时备用)

1. 查看并复制本地公钥内容:
bash 复制代码
cat ~/.ssh/id_rsa.pub

复制输出的整行内容(以 ssh-rsa AAAAB3... 开头)

2. 登录 ECS 输入密码:
bash 复制代码
ssh root@你的服务器公网IP
3. 在服务器上创建目录并写入公钥:
bash 复制代码
mkdir -p ~/.ssh
echo "粘贴你复制的公钥内容" >> ~/.ssh/authorized_keys
4. 设置关键权限(必须!否则登录失败):
bash 复制代码
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
5. 退出服务器:
bash 复制代码
exit

✅ 步骤 3:测试免密登录

bash 复制代码
ssh root@你的服务器公网IP

✅ 若 无需输入密码直接进入服务器,恭喜你配置成功!


✅ 步骤 4:(可选)配置别名,简化登录命令

编辑你的 Shell 配置文件:

  • 如果使用 zsh(macOS Catalina 及以后默认):

    bash 复制代码
    vim ~/.zshrc
  • 如果使用 bash

    bash 复制代码
    vim ~/.bashrc

在文件末尾添加别名(例如命名为 ecs):

bash 复制代码
alias ecs='ssh root@你的服务器公网IP'

保存后使配置生效:

bash 复制代码
source ~/.zshrc   # 或 source ~/.bashrc

之后只需输入:

bash 复制代码
yanchang@xxxxx4 ~ % ecs
Last login: Fri Oct 31 11:07:19 2025 from 42.120.75.126

Welcome to Alibaba Cloud Elastic Compute Service !

即可秒登服务器!⚡


🔒 安全与排错注意事项

  1. 安全组必须开放 22 端口 ------ 否则连接被拒绝。

  2. 权限设置必须正确

    • ~/.ssh700
    • ~/.ssh/authorized_keys600
  3. 若仍提示输入密码 ,请检查服务器 SSH 配置:

    bash 复制代码
    sudo vim /etc/ssh/sshd_config

    确保以下配置存在且未被注释:

    复制代码
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

    修改后重启 SSH 服务:

    bash 复制代码
    sudo systemctl restart sshd
  4. 多服务器管理建议 :后续可使用 ~/.ssh/config 文件配置多个主机别名与密钥路径,实现更灵活管理。

相关推荐
李白你好42 分钟前
云安全渗透测试框架 - 支持 AWS、Azure、GCP、阿里云、腾讯云、华为云的综合渗透测试工具和指南
阿里云·azure·aws
北冥有鱼被烹44 分钟前
【vibo经验记录】Mac 配置 Claude Code + 远程 Ollama 完全指南
macos·claude code·openclaw
七七powerful1 小时前
运维养龙虾--使用腾讯workbuddy部署ssh-mcp-server允许通过 MCP 协议远程执行 SSH 命令
运维·ssh·ssh-mcp
无巧不成书02182 小时前
FFmpeg 保姆级安装教程!Windows/macOS/Linux全平台覆盖,
windows·macos·ffmpeg
I'm Jie2 小时前
MacOS 国内镜像一键安装 Homebrew
git·macos·homebrew
lucky_syq2 小时前
Mac电脑部署OpenClaw保姆级教程(2026最新版)
人工智能·macos·开源·电脑·openclaw
※※冰馨※※2 小时前
【C++】通过 Git 访问阿里云 Codeup 仓库
git·阿里云·云计算
摇滚侠2 小时前
JAVA 项目教程《苍穹外卖-番外篇-阿里云对象存储》,微信小程序项目,前后端分离,从开发到部署
阿里云·云计算
todoitbo12 小时前
用虚拟局域网打通 Win/Mac/Linux 三端:跨设备协作的实用方案
linux·运维·macos
小仓桑18 小时前
【Agent智能体项目实战一】阿里云通义千问兼容 OpenAI 接口实现 AI 对话
人工智能·阿里云·云计算·agent