尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

通过密钥对配置重装系统后,重新建立 VS Code 与云服务器的 SSH 连接。【后端开发遇到的那点事儿】

通过密钥对配置重装系统后,重新建立 VS Code 与云服务器的 SSH 连接。【后端开发遇到的那点事儿】 前情提要本地 Windows 已经保存了云服务器原来的 SSH 私钥。重装云服务器 Linux 系统时重新选择了原来的密钥对同时删除了 VS Code Remote-SSH 配置文件C:\Users\20720\.ssh\config中的全部内容。因此需要重新建立 VS Code 与云服务器的 SSH 连接。解决流程按下面步骤操作1. 重装服务器时重新绑定原来的密钥对云服务器重装时选择之前使用的同一密钥对。原因重装系统后服务器中的 SSH 公钥授权通常会重新生成/配置。重新绑定原密钥对后服务器会重新保存与 Windows 本机私钥相匹配的登录公钥从而允许该私钥登录。2. Windows PowerShell 删除旧服务器 Host Key执行ssh-keygen-R 服务器IP原因服务器重装后服务器自己的 SSH Host Key 通常会重新生成而 Windows 的C:\Users\20720\.ssh\私钥仍保存着重装前的服务器指纹因此需要删除旧记录。这里的 Host Key 是服务器用于证明自己身份的密钥与用于登录服务器的“本机私钥 服务器 authorized_keys 中的公钥”不是同一个东西。3. 使用原私钥测试 SSH 登录在本地win的 PowerShell 执行ssh-i C:\Users\20720\.ssh\私钥文件名 root服务器IP第一次连接新系统时如果出现Are you sure you want to continue connecting?输入yes如果能够成功登录说明以下部分都正常服务器 SSH 服务 ✅ 服务器登录公钥 ✅ Windows 本机私钥 ✅ root 公钥登录 ✅4. 在 VS Code 中重新添加服务器执行Ctrl Shift P → Remote-SSH: Add New SSH Host...输入ssh root服务器IP然后选择配置文件C:\Users\20720\.ssh\configVS Code 会自动生成类似Host 服务器IP HostName 服务器IP User root但此时可能仍然出现Permission denied (publickey)原因VS Code 此时知道服务器 IP 和用户名但不一定知道应该使用 Windows 中的哪一个私钥。5. 在 config 中指定私钥在对应服务器配置下面增加IdentityFile C:/Users/20720/.ssh/私钥文件名最终最简配置为Host 服务器IP HostName 服务器IP User root IdentityFile C:/Users/20720/.ssh/私钥文件名然后回到 VS CodeCtrl Shift P → Remote-SSH: Connect to Host... → 选择服务器IP即可连接。核心原理服务器重装 → 重新绑定原密钥对 → 让新系统重新认可本机私钥对应的登录公钥 服务器重装后 Host Key 改变 → ssh-keygen -R 服务器IP → 删除 Windows 保存的旧服务器指纹 PowerShell 使用 -i 可以手动指定私钥 → VS Code 没有手动写 -i → 在 config 中使用 IdentityFile 指定私钥一句话总结重新绑定原密钥对解决“服务器认不认识你的私钥”ssh-keygen -R解决“本机认不认识重装后的服务器”IdentityFile解决“VS Code 到底应该使用哪一把私钥”。
返回列表