配置 SSH 密钥而不丢失访问权限
在自己的计算机上生成受保护的密钥对,只把公钥安装到 VPS,核实主机与密钥指纹,并在更改密码认证前测试第二个会话。私钥绝不能上传到 VPSEverywhere.com,也不能复制到服务器。
关键信息
- 建议默认选项
- 带强本地口令的 Ed25519 密钥
- 可共享文件
- 仅 `.pub` 公钥
- 秘密文件
- 不带 `.pub` 的私钥
- 防止锁定
- 测试第二个连接并保留控制台访问
在本地生成并识别密钥
在当前 OpenSSH 客户端运行 ssh-keygen -t ed25519 -a 100 -f ~/.ssh/vpseverywhere_admin 创建专用密钥,并在提示时输入强口令。命令会生成名为 vpseverywhere_admin 的私钥与 vpseverywhere_admin.pub 公钥。若因特定兼容或政策限制无法使用 Ed25519,应选择环境认可的 RSA 配置,而不是复制旧密钥。
用 ssh-keygen -lf ~/.ssh/vpseverywhere_admin.pub 显示公钥指纹,并保存到可信记录。不要输出或传输私钥,也不要把私钥粘贴进标有“SSH 密钥”的控制面板字段;该字段应接收以 ssh-ed25519 开头的单行公钥。
- 管理用途应使用专用密钥,而不是团队共用密钥。
- 通过磁盘加密和更新保护本地设备。
- 私钥备份只能放在加密且受访问控制的存储中。
安装公钥
暂时允许密码登录时,请把两个占位符替换后运行 ssh-copy-id -i ~/.ssh/vpseverywhere_admin.pub USER@SERVER_IP。也可通过服务商的开通控制添加准确公钥行。若在 VPS 手动编辑,目标用户的 ~/.ssh 目录应归该用户所有,通常权限为 700;authorized_keys 通常为 600。
使用 ssh -i ~/.ssh/vpseverywhere_admin USER@SERVER_IP 明确指定密钥连接。首次连接时,应通过独立可信来源核实服务器主机密钥指纹后再接受。重装后主机密钥变化可能正常,但也可能表示中间人攻击或地址已分配给另一台服务器。
- 不要盲目删除旧记录来消除主机密钥警告。
- 尽可能使用独立的非 root 管理员账户。
- 每人的密钥单独占一行,以便干净撤销。
让日常使用保持可靠
在本地 ~/.ssh/config 创建 SSH 客户端别名,包含 Host 名称、HostName 地址、User 账户和 IdentityFile ~/.ssh/vpseverywhere_admin。操作系统要求时,只允许自己的账户读取配置文件。SSH 代理可以减少重复输入口令,但只在可信设备解锁密钥,不要把代理转发到不可信主机。
团队应通过配置管理为每人部署独立公钥,访问结束后及时移除。不要通过聊天或工单传播同一把私钥。客户端与服务器支持所选类型时,硬件密钥可加强高价值管理。
- 按角色和环境命名密钥,但不要嵌入秘密。
- 人员或自动化变更后审核授权密钥。
- 共享工作站使用较短且受控的代理生命周期。
测试成功后再关闭较弱方式
保留当前会话,打开第二个终端,确认新密钥能登录并执行预期管理命令。先运行 sudo sshd -t 验证任何 SSH 服务器更改,然后再执行 sudo systemctl reload ssh。当必要用户与自动化都不依赖密码或直接 root 登录时,才可将其停用。
保留服务商控制台的恢复方式,并记录如何恢复访问。遗失密钥时应立即撤销;若没有控制台又丢失唯一可用密钥,就会造成中断。
来源
常见问题
SSH 密钥的哪一部分可以粘贴到 VPS 面板?
只能粘贴公钥,通常是以 .pub 结尾的文件。绝不要粘贴私钥、私钥口令或 SSH 代理套接字。
私钥已经是文件,为什么还需要口令?
如果文件从设备被复制,口令能增加一层保护。它不能替代设备安全,也不能替代怀疑被盗后的及时撤销。
服务器指纹改变意味着什么?
可能是有意重装或地址重新分配,也可能表示连接被拦截。连接前请独立核实新指纹。