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 文件配置多个主机别名与密钥路径,实现更灵活管理。

相关推荐
佛山个人技术开发7 小时前
GitCode SSH连接配置教程
运维·ssh·gitcode
修炼室8 小时前
外网环境原生直连校内服务器:基于内网穿透 + SSH 密钥认证的完整实践指南
服务器·ssh·php
ting94520008 小时前
Minimi 深度技术剖析:macOS 端侧全量上下文采集与 Claude 本地 RAG 联动架构详解
macos·架构·策略模式
鲨鱼辣椒_TUT9 小时前
macOS取消自动更新
macos
一勺菠萝丶9 小时前
Mac 打开软件提示“已损坏,无法打开”的原因和解决方法
macos
穗余12 小时前
Mac 使用 Caps Lock 键切换输入法失灵问题解决
macos
主机哥哥14 小时前
2026年阿里云618活动优惠政策详细解读
阿里云
vortex514 小时前
SSH “administratively prohibited” 报错解决
运维·ssh
寻道模式14 小时前
【时间之外】AI不懂Mac吗?
人工智能·macos
Qimooidea17 小时前
MacOS 平台 CAD 图纸翻译实战:从技术挑战到高效落地
macos·策略模式