Mac远程桌面反复要求输入密码,通常是因为系统启用了密码过期策略。要解决这个问题,需要在被控 Mac 上执行 sudo pwpolicy seteppolicy -n "com.apple.loginwindow.passwordPolicy" -v '{"passwordMaxAge":0}' 来关闭密码过期限制,同时设置独立的 VNC 密码,确保远程桌面密码长期有效、不再频繁失效。

如果 Mac 远程桌面连接时总是反复提示输入密码,尤其在每次重启、休眠或唤醒后都需要重新输入,通常是因为系统账户密码启用了过期策略。只有在被控 Mac 上关闭密码过期机制,才能让远程桌面登录凭据实现一次设置、长期使用,避免频繁重复验证。
确认当前账户密码策略
在被控 Mac 上打开终端,执行:sudo pwpolicy getaccountpolicies。如果返回结果中包含 passwordMaxAge,且对应值为非零数字(例如 365),就说明当前账户已启用密码过期限制,这也是 Mac 远程桌面频繁要求重新输入密码的常见原因。
关闭密码过期策略
在终端中输入以下命令并回车:sudo pwpolicy seteppolicy -n "com.apple.loginwindow.passwordPolicy" -v '{"passwordMaxAge":0}'。
这条命令会将全局登录窗口策略中的密码最长有效期设置为 0,也就是密码永不过期。需要注意的是,此操作必须使用管理员权限执行,输入当前用户密码后才会生效。
【必须使用当前登录用户对应的管理员账户执行,普通标准用户没有权限修改系统级密码策略】
验证策略是否生效
再次运行 sudo pwpolicy getaccountpolicies,查看输出中的 passwordMaxAge 是否已经变为 0。若仍然显示原来的数值,说明命令没有成功执行——请检查是否遗漏了 sudo,或者引号格式是否写错(必须使用英文双引号)。
配合远程管理服务启用VNC密码
方法一:通过系统设置开启远程管理并设置 VNC 密码
1. 点击苹果菜单 → “系统设置” → “通用” → “共享” → 打开“远程管理”。
2. 点击右侧“信息”按钮 → 勾选“VNC 显示程序可以使用密码控制屏幕”。
3. 输入一个至少 8 位的独立 VNC 密码(不要与系统登录密码相同,并且不会受到系统密码策略的影响)。
方法二:跳过图形界面,直接通过终端强制设置 VNC 密码。
执行命令:sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -clientopts -setvnclegacy -vnclegacy yes -clientopts -setvncpw -vncpw 你的强密码。
这种方式会直接写入 VNC 服务的认证凭据,意味着设置后的密码不受 pwpolicy 策略约束,更适合需要长期稳定使用 Mac 远程桌面的场景,并可保持长期有效。
