设置SSH私钥密码短语可防止私钥被盗滥用,生成时用ssh-keygen直接设定,已有密钥可用ssh-keygen -p修改;输入后建议搭配ssh-agent缓存,安全上推荐4–6个不相关单词组合。

设置 SSH 私钥的密码短语(passphrase)是增强密钥安全的关键一步——它不改变免密登录服务器的体验,但能有效防止私钥文件被盗后被直接滥用。
生成时直接设置密码短语
运行 ssh-keygen 命令时,系统会在保存密钥后立即提示输入密码短语:
- 执行命令如:ssh-keygen -t ed25519 -C "me@work.com"
- 按回车接受默认路径(如 ~/.ssh/id_ed25519)
- 在 Enter passphrase 提示下输入你记得住、又足够强的短语(支持空格和特殊字符)
- 再输入一次确认——输错会重新开始,不会生成密钥
为已有私钥添加或修改密码短语
如果当初跳过了密码短语,或想更换更安全的短语,可用 ssh-keygen -p 命令:
- 运行:ssh-keygen -p -f ~/.ssh/id_ed25519(把路径换成你实际的私钥位置)
- 它会先要求输入当前密码短语(若原本没设,直接回车)
- 接着两次输入新密码短语即可完成更新
- 操作完成后,原私钥文件会被覆盖,公钥不变
使用时如何输入密码短语
设置了密码短语后,每次用该私钥建立 SSH 连接、Git 操作或 rsync 等场景,系统都会弹出提示让你输入:
- 终端中会显示:Enter passphrase for key '/home/user/.ssh/id_ed25519':
- 输入正确短语后连接继续,不会重复询问(除非你重启了终端或清空了 ssh-agent)
- 推荐搭配 ssh-agent:首次输入后自动缓存,后续操作无需重复输入(Linux/macOS 默认启用;Windows 可通过 Get-Service ssh-agent | Set-Service -StartupType Manual 启用)
密码短语的安全建议
它不是服务器登录密码,而是保护你本地私钥的一道锁,设计上需兼顾记忆性与抗暴力能力:
- 避免常见单词、生日、键盘序列(如 123456、qwerty)
- 推荐使用 4–6 个不相关单词组合(如 turtle-battery-sunset-pickle),比复杂单密码更易记且更难破解
- 不要复用其他账户密码,也不要在不同私钥间共用同一短语
- 若担心遗忘,可写在安全的地方(如加密笔记),但切勿明文存于电脑或云盘

















