介绍
在DigitalOcean平台上对FreeBSD服务器进行身份验证的主要方法是使用SSH密钥。 你可以学习如何创建和按照嵌入一个SSH公钥到新的Droplet实例本指南 。
与使用SSH密钥登录相比,基于密码的身份验证提供了许多安全优势,但是可能会出现有效锁定您离开自己的服务器的情况。 在这些情况下,可能需要设置密码,以便您可以使用DigitalOcean Web控制台登录服务器。
在本指南中,我们将演示如果您的服务器被锁定,如何为您的FreeBSD Droplet设置密码。
基本计划
当包括在创建过程中的DropletSSH密钥,出于安全考虑,您的服务器上的用户帐户未配置密码。
但是,在某些情况下,您将必须使用非常规方法登录。 例如,如果您的SSH密钥丢失或销毁,或者您的服务器的内部网络设置配置错误,您将无法使用SSH密钥进行身份验证。
对于DigitalOcean提供的大多数操作系统,如果发生这种情况,用户将通过单击Droplet管理页面中的“访问”,然后单击“重置根密码”,在DigitalOcean控制面板中为Droplet创建密码:
对于大多数操作系统,这将生成一个新的密码,并通过电子邮件发送给您。 然后,您可以使用此密码与SSH或通过DigitalOcean Web控制台,如果您的Droplet的网络不能正常工作,提供带外访问。
但是,此功能不适用于FreeBSD,因此需要使用不同的过程。
要在FreeBSD中设置或重置用户帐户的密码,我们将从DigitalOcean控制面板重新启动Droplet。 然后我们将切换到虚拟Web控制台,以便将服务器引导到单用户模式。 在这里,我们可以挂载文件系统并为我们的帐户设置密码。
本指南的其余部分将概述为FreeBSD服务器设置或重置密码所需的分步过程。 如果您被锁定在您的服务器之外,可以采取这些步骤。
关闭DigitalOcean Droplet电源
设置或重置FreeBSD密码的第一步是关闭服务器电源。 此要求的问题是,在大多数时间,如果您尝试此过程,您将不会有命令行访问您的服务器。
如果由于某种原因, 你有你的服务器命令行访问,启动命令行关闭是关闭服务器的最佳方式:
sudo shutdown -p now
如果,与大多数用户在这种情况下,您没有命令行访问您的Droplet,您应该通过DigitalOcean控制面板中的“关闭”按钮关闭您的系统。
该按钮位于通过点击关机按钮,左边的菜单上的电源链接:
此按钮将尝试正常关闭您的Droplet,就像您发出了我们上面提到的命令。 如果这不工作,将发出硬断电。
无论哪种方式,您的服务器都应该关闭,让我们继续下一步。
重新启动服务器电源并切换到单用户模式
DigitalOcean Web控制台是一个虚拟控制台界面,可模拟到您的服务器的物理连接。 因此,即使服务器的网络配置错误,您也可以登录到Droplet。
虚拟控制台配置的另一个优点是,当我们打开服务器时,它提供了一个启动菜单。 通过利用这一点,我们就可以开机进入单用户模式 。
单用户模式是一种特殊的管理模式,只能通过与服务器的物理连接进行访问。 它允许root用户在没有密码的情况下登录。 外部网络,非必要服务和其他登录都已禁用。 由于DigitalOcean Web控制台模拟物理连接,我们可以启动到单用户模式。
我们将使用的过程要求您快速执行几个顺序操作。 你必须:
- 使用控制面板按钮打开服务器电源
- 单击控制台访问按钮访问虚拟Web控制台
- 在启动菜单超时之前,按键盘上的“2”键选择第二个引导选项(单用户模式)
您必须在几秒钟内完成上述过程,所以请确保您知道在开始之前该做什么。
首先,在控制面板中转到您的Droplet页面。 从左侧选择菜单电源 ,然后单击Power On按钮。
接下来,选择从左侧菜单访问 ,然后单击控制台访问按钮。
然后,您将进入虚拟Web控制台,您的Droplet应该到达启动菜单。 当加载启动菜单时,快速按“2”选择单用户模式。 您的服务器将开始引导进入受限制的单用户管理模式。
重新安装文件系统
当FreeBSD启动进入单用户模式时,您将看到消息滚动过来。 最后,你会看到这样的消息:
在提示符下按“ENTER”启动shell会话。
此时,您可以访问受限的shell环境。 但是,包含密码信息的文件系统以只读方式装载,这意味着我们无法调整密码。
我们可以通过键入以读/写模式重新挂载根文件系统:
mount -u /
这将让我们访问系统的密码数据库,允许我们设置一个新的密码。
注意 :如果此命令失败,出现一条消息,说明“文件系统不干净”,您的服务器无法正确关闭。 如果是这种情况,请跳到“故障排除:在不正确关闭后清理文件系统”部分。
如果上面的命令成功,我们可以告诉FreeBSD重新挂载所有文件系统,这将给我们提供同步访问:
mount -a
完成此过程后,我们现在可以重置服务器的密码。
设置或重置服务器密码
一旦我们的文件系统安装,我们可以设置或重置任何帐户密码的使用在系统上passwd
命令。
要设置或重置为默认密码freebsd
用户帐户,您可以键入:
passwd freebsd
系统将要求您选择并确认帐户的新密码。 此帐户设置了sudo
默认权限,所以通常情况下,这是你需要设置的唯一密码。
相反,如果你需要设置的密码root
用户帐户,您可以通过打字这样做:
passwd
同样,您将需要选择并确认密码,以使此操作成功。
设置所需的密码后,您可以键入以下命令退出单用户环境:
exit
FreeBSD将离开单用户模式,并让您的服务器通过正常的引导过程的剩余部分。 此时,您可以使用您通过控制台配置的密码继续登录,也可以使用SSH登录(假设您没有限制SSH会话的密码登录)。
如果此过程适用于您,则可以在此处完成本指南。 如果您无法早期以读/写模式安装文件系统,请继续到下一部分。
疑难解答:在不正确的关闭后清除文件系统
有时,当您从DigitalOcean控制面板关闭Droplet电源时,正常关机程序将失败。 这可能由于各种原因而发生,最常见是由于服务器本身内的条件。
如果发生这种情况,则会运行硬关机。 这可能导致磁盘状态不一致,从而阻止正常安装。 当您尝试以读/写模式安装文件系统时,您会看到类似如下的错误:
为了修复文件系统,必须运行fsck
命令。
注 : 在运行fsck
命令在动态磁盘使用时,有时会导致数据损坏。 出于这个原因,我们正在发起fsck
上卸载文件系统,这个风险降到最低。 在电源关闭事件发生时有大量数据写入磁盘的情况下,仍然会出现问题。 大多数用户不会遇到任何问题,但它总是一个可能性,当硬关机发生。
为了解决不一致问题,我们可以尝试自动更正错误:
fsck
系统将检查文件系统,有时需要键入“y”以接受建议的操作。 通常最好接受这些解决方案,因为固定这些磁盘问题的替代方法不多。
一旦文件系统检查完成,它将被标记为clean:
此时,您可以继续执行上面列出的过程。 您需要采取的简化步骤如下。
挂载文件系统:
mount -u /
mount -a
设置您需要的帐户的密码:
# To set the freebsd user account password, type:
passwd freebsd
# To set the root user password, type:
passwd
为所需帐户设置密码后,退出单用户模式以恢复正常的引导顺序:
exit
结论
希望你不会遇到很多情况下,你需要使用上述方法设置密码。 尽管FreeBSD的过程与DigitalOcean支持的其他操作系统不同,但它应该产生类似的结果。 如果在完成此过程中遇到任何问题,请通过DigitalOcean控制面板打开支持凭单以请求帮助。