Mac上传SSH公钥到远程服务器需手动将公钥内容追加至~/.ssh/authorized_keys并设chmod 600权限,先生成ed25519密钥对、复制公钥、登录服务器建~/.ssh目录(chmod 700)、写入公钥、验证无密码登录。
mac 把本地 ssh 公钥上传到远程服务器,核心是把公钥内容安全写入服务器的 ~/.ssh/authorized_keys 文件,并确保目录和文件权限正确。推荐优先用手动方式,避开 ssh-copy-id 在新版 macos(如 sonoma、sequoia)中常见的兼容性问题。
一、先在 Mac 上生成密钥对(如果还没做)
打开终端,运行:
ssh-keygen -t ed25519 -C "your_email@example.com"
连续按回车接受默认路径(~/.ssh/id_ed25519),建议输入一个强密码短语(passphrase)增强私钥安全性。完成后,公钥就是 ~/.ssh/id_ed25519.pub。
二、查看并复制公钥内容
执行命令显示公钥:
cat ~/.ssh/id_ed25519.pub
全选终端中输出的整行内容(以 ssh-ed25519 AAAA... 开头,结尾带你的邮箱),用 Cmd + C 复制。注意:不要复制换行符或多余空格。
三、登录服务器并手动部署公钥
用密码方式登录一次远程服务器:
ssh username@server_ip
登录成功后,在服务器上依次执行以下三步(顺序不能错):
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo "粘贴刚才复制的整行公钥" >> ~/.ssh/authorized_keys
接着立即设置关键权限:
chmod 600 ~/.ssh/authorized_keys
这一步不可省略——OpenSSH 会静默拒绝权限过宽的 authorized_keys 文件。
四、验证是否生效
退出服务器(输入 exit),再重新连接:
ssh username@server_ip
如果直接进入、没提示输密码,说明配置成功。若仍要密码,请检查:
• 服务器是否开启了 PubkeyAuthentication yes(通常默认开启)
• 是否漏了 chmod 600 或误设为 644
• 公钥是否复制完整(尤其末尾邮箱部分)

















