重装Ubuntu服务器后误删SSH密钥导致无法连接中央服务器的解决办法求助
重装Ubuntu服务器后误删SSH密钥导致无法连接中央服务器的解决办法求助
别慌,这种情况我之前帮朋友处理过,咱们一步步来捋清楚解决思路:
首先得明确核心问题:你是删掉了本地Windows机器上的SSH私钥(包括PuTTY相关的密钥配置),还是连中央服务器上的授权公钥也弄丢了?从你描述的情况看,主要是本地密钥没了,但如果重装中央服务器时格式化了用户目录,那服务器端的授权列表也可能没了,咱们分情况处理:
第一步:先拿到中央服务器的登录权限
这是最关键的前提,没有登录权限一切都是白搭:
- 如果服务器在你身边,直接接显示器键盘登录物理控制台
- 如果是远程托管的服务器,联系服务商申请IPMI、iKVM这类远程管理控制台权限,一般服务商都会提供临时的应急登录途径
- 如果你之前给服务器设置过密码登录(后来改成密钥登录的),可以试试直接用密码通过SSH登录,说不定
sshd配置里还没完全禁用密码登录
第二步:重新配置SSH访问权限
一旦能登录中央服务器,就可以针对性修复:
情况1:本地密钥丢失,服务器端授权公钥还在
- 在你的Windows机器上重新生成SSH密钥对:打开PowerShell或者Git Bash,执行命令
一路按回车用默认配置就行,生成的私钥在ssh-keygen -t ed25519C:\Users\你的用户名\.ssh\id_ed25519,公钥在同目录的id_ed25519.pub - 把新生成的公钥内容复制到中央服务器的
~/.ssh/authorized_keys文件末尾(如果文件不存在就创建一个) - 记得设置正确的权限,不然SSH会拒绝识别:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys - 如果你用PuTTY连接,需要把生成的私钥转换成PuTTY支持的
.ppk格式:打开PuTTYgen,导入刚才的id_ed25519文件,点击“Save private key”保存成.ppk,之后在PuTTY的连接配置里指定这个私钥文件就行
情况2:服务器端的授权公钥也没了(比如重装服务器时格式化了用户目录)
- 先临时开启密码登录,方便后续操作:编辑SSH配置文件
找到sudo nano /etc/ssh/sshd_configPasswordAuthentication这一行,改成yes(如果被注释了就去掉前面的#) - 重启SSH服务生效:
sudo systemctl restart sshd - 之后你就可以用密码通过SSH登录中央服务器,再按照上面情况1的步骤,把新生成的公钥添加到
authorized_keys里 - 确认密钥登录正常后,记得把
PasswordAuthentication改回no,关闭密码登录保障安全
额外提醒
- 以后记得备份SSH密钥!可以把私钥拷贝到加密的U盘或者密码管理器里,避免再出现这种情况
- 如果之前用PuTTY保存过会话配置,检查一下会话里的密钥路径是不是指向新生成的
.ppk文件,避免连接时出错
备注:内容来源于stack exchange,提问作者Fluffy3763
相关产品推荐
相关产品推荐

