在 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),執行以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 按回車使用默認路徑(
~/.ssh/id_rsa) - 不要設置密碼(passphrase) → 直接連續按回車(否則仍需輸密碼)
- 生成後將在
~/.ssh/目錄下得到兩個文件:
id_rsa(私鑰,嚴禁泄露!)id_rsa.pub(公鑰,用於上傳服務器)
查看是否已有密鑰:
ls ~/.ssh/
✅ 步驟 2:將公鑰上傳到阿里雲 ECS
方法一:使用 ssh-copy-id(推薦 ✅ 最簡單)
ssh-copy-id root@你的服務器公網IP
- 首次運行會提示輸入 ECS 的 root 密碼
- 成功後自動將公鑰追加到服務器的
~/.ssh/authorized_keys
⚠️ 若提示
command not found: ssh-copy-id,請先安裝:brew install ssh-copy-id
(需已安裝 Homebrew)
方法二:手動上傳(無 ssh-copy-id 時備用)
1. 查看並複製本地公鑰內容:
cat ~/.ssh/id_rsa.pub
複製輸出的整行內容(以 ssh-rsa AAAAB3... 開頭)
2. 登錄 ECS 輸入密碼:
ssh root@你的服務器公網IP
3. 在服務器上創建目錄並寫入公鑰:
mkdir -p ~/.ssh
echo "粘貼你複製的公鑰內容" >> ~/.ssh/authorized_keys
4. 設置關鍵權限(必須!否則登錄失敗):
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
5. 退出服務器:
exit
✅ 步驟 3:測試免密登錄
ssh root@你的服務器公網IP
✅ 若 無需輸入密碼直接進入服務器,恭喜你配置成功!
✅ 步驟 4:(可選)配置別名,簡化登錄命令
編輯你的 Shell 配置文件:
- 如果使用 zsh(macOS Catalina 及以後默認):
vim ~/.zshrc
- 如果使用 bash:
vim ~/.bashrc
在文件末尾添加別名(例如命名為 ecs):
alias ecs='ssh root@你的服務器公網IP'
保存後使配置生效:
source ~/.zshrc # 或 source ~/.bashrc
之後只需輸入:
yanchang@xxxxx4 ~ % ecs
Last login: Fri Oct 31 11:07:19 2025 from 42.120.75.126
Welcome to Alibaba Cloud Elastic Compute Service !
即可秒登服務器!⚡
- 安全組必須開放 22 端口 —— 否則連接被拒絕。
- 權限設置必須正確:
~/.ssh→700~/.ssh/authorized_keys→600
- 若仍提示輸入密碼,請檢查服務器 SSH 配置:
sudo vim /etc/ssh/sshd_config
- 確保以下配置存在且未被註釋:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
- 修改後重啓 SSH 服務:
sudo systemctl restart sshd
- 多服務器管理建議:後續可使用
~/.ssh/config文件配置多個主機別名與密鑰路徑,實現更靈活管理。