![Web 开发人员离开了,无法联系他,我该如何重置 ssh 的 root 密码以便可以访问它?](https://linux22.com/image/650478/Web%20%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E7%A6%BB%E5%BC%80%E4%BA%86%EF%BC%8C%E6%97%A0%E6%B3%95%E8%81%94%E7%B3%BB%E4%BB%96%EF%BC%8C%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E9%87%8D%E7%BD%AE%20ssh%20%E7%9A%84%20root%20%E5%AF%86%E7%A0%81%E4%BB%A5%E4%BE%BF%E5%8F%AF%E4%BB%A5%E8%AE%BF%E9%97%AE%E5%AE%83%EF%BC%9F.png)
我们的首席技术员(不专业地)离开了我们的项目,我们无法联系到他,但作为一名半技术项目经理,我可以访问 Joyent 上的服务器。我们的新开发人员需要查看我们正在运行的实例以完成项目。
是否可以检索根密码?
如果我创建新的私人 ssh 密钥,我们是否能够访问服务器?
最糟糕的情况是,如果我无法通过 ssh 访问,我该如何备份数据?
尝试清理这个烂摊子,尽快将正确的凭证交给专业人士。任何帮助都将不胜感激。谢谢。
答案1
你能ssh
进入服务器吗?你能sudo
进入 root 用户吗?你能通过什么运行sudo
?
sudo /bin/bash
例如,如果您可以运行 ,然后使用rsync
进行复制,那么备份数据将变得非常简单。更好的方法是使用dump
或进行文件系统转储zfs send
。您可以使用 进行块级备份dd
。
如果您可以物理访问服务器,无论是通过 Joyent 进入恢复模式,还是能够启动安装媒体,那么您可以编辑 /etc/shadow 文件。如果可能的话,这是迄今为止最简单的操作。编辑 /etc/shadow 后,将您认识的用户的加密字符串复制到 root 用户加密字符串上。例如:
根:$6$YPBAiH9m$Kf9euZx0JLKo6M51SIk1lQ1tjUajETECta/eB8dLTWEfPF1NncM7ebQrnPu7ExwqnZ130VcWyvRI21d8GlmyY/:16392:0:99999:7::: ed:$6$zg0pHyXY$y6EriYDZCh4zrz1kztlxG2Fpf.8pmh9ON0fkoaSlW2jBJXfizrlBwGV4CFntwWsE55FKvuNlCS5UCpC1f2sio1:16392:0:99999:7:::
所以,我知道 ed 的密码,我只需要让 root 的密码看起来相同:
根:$6$zg0pHyXY$y6EriYDZCh4zrz1kztlxG2Fpf.8pmh9ON0fkoaSlW2jBJXfizrlBwGV4CFntwWsE55FKvuNlCS5UCpC1f2sio1:16392:0:99999:7::: ed:$6$zg0pHyXY$y6EriYDZCh4zrz1kztlxG2Fpf.8pmh9ON0fkoaSlW2jBJXfizrlBwGV4CFntwWsE55FKvuNlCS5UCpC1f2sio1:16392:0:99999:7:::
瞧,实际上,这是您可以做的最简单的事情,因为您将把 root 密码设置为与您知道其密码的用户密码相同。