mac ssh免密登录需五步:启用远程登录服务、用终端ssh命令连接、生成ed25519密钥对、手动部署公钥并设权限(~/.ssh 700、authorized_keys 600)、用ssh-add --apple-use-keychain将私钥加入钥匙串。

如果您在Mac终端中尝试通过SSH连接远程服务器,但每次都需要输入密码,则可能是由于公钥未正确部署、服务端SSH未启用或权限配置不合规。以下是解决此问题的多种方法:
一、启用远程主机的SSH服务
macOS默认不运行sshd守护进程,必须手动开启“远程登录”功能,否则任何密钥配置均无法生效。该步骤是后续所有操作的前提。
1、点击左上角苹果图标 → 选择「系统设置」→ 点击「通用」→ 进入「共享」;
2、勾选「远程登录」选项;
3、右侧显示类似ssh user@192.168.x.x的提示信息,表示服务已启动;
4、点击右侧「信息」图标 → 选择「仅这些用户」并勾选目标登录账户;
5、若系统防火墙已启用,确认「防火墙选项」中未阻止sshd(端口22)。
二、使用终端内置SSH命令直接连接
该方法调用macOS系统预装的OpenSSH客户端,不依赖第三方工具,适用于一次性或临时性连接需求,其本质是通过标准协议发起加密身份验证请求。
1、点击屏幕左上角“前往”菜单,选择“应用程序” → “实用工具” → “终端”;
2、在终端窗口中输入命令:ssh username@server_ip_address,其中username为服务器上的有效账户名(如root、ubuntu),server_ip_address为服务器实际IP地址(例如192.168.0.110);
3、首次连接时,系统将显示服务器RSA密钥指纹提示,输入yes并回车确认信任;
4、出现密码提示符后,输入对应用户的密码(注意:输入过程无任何可见字符反馈),回车提交;
5、当终端光标前显示#(root权限)或$(普通用户)时,表示已成功建立SSH会话。
三、生成Ed25519密钥对实现免密登录
使用Ed25519算法生成密钥比RSA更安全、更高效,且完全兼容现代macOS系统。私钥必须严格保密,公钥将被部署至远程主机。
1、打开「终端」应用;
2、执行命令:ssh-keygen -t ed25519 -C "your_email@example.com";
PyCharm 2026.2.0.1 Mac版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合在macOS系统上进行 Python 项目开发、运行、调试和测试。
3、按回车接受默认保存路径~/.ssh/id_ed25519;
4、输入并确认一个强密码短语(passphrase),不建议直接回车留空;
5、生成完成后,私钥文件为~/.ssh/id_ed25519,公钥文件为~/.ssh/id_ed25519.pub。
四、手动将公钥复制到远程主机
ssh-copy-id在部分macOS版本(如Sonoma及更新版)存在兼容性问题,易因shell初始化或权限异常失败,手动部署可确保过程可控、路径明确、权限精准。
1、在本地终端执行:cat ~/.ssh/id_ed25519.pub,全选并复制输出内容;
2、使用密码方式登录远程主机:ssh user@remote_ip;
3、在远程主机上依次执行以下三行命令(顺序不可调换):
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys
4、立即设置授权文件权限:chmod 600 ~/.ssh/authorized_keys;
5、验证~/.ssh目录权限是否为700、authorized_keys文件权限是否为600,任一超标将导致sshd静默拒绝认证。
五、使用ssh-add将私钥加入钥匙串管理
为避免每次连接重复输入passphrase,可借助macOS钥匙串自动填充凭证,前提是私钥已设密码且钥匙串已解锁。
1、在终端中执行:ssh-add --apple-use-keychain ~/.ssh/id_ed25519;
2、系统将弹出图形化提示框,要求输入该私钥的passphrase;
3、勾选“在钥匙串中记住密码”选项后点击“好”;
4、此后在当前会话及新终端中执行ssh连接时,将自动从钥匙串提取凭证;
5、如需查看已添加的密钥列表,运行:ssh-add -l。










