在没有 shell 初始化的情况下连接到服务器

connect to a server without shell initialization

我在虚拟机上安装了 fish shell,然后我停止了所有用户的登录。 当我尝试在我的终端上通过 SSH 登录时,我收到一个权限被拒绝的消息,好像我输入了错误的密码。

访问digital ocean web console时,显示密码正确,但出现错误

我知道这个错误是因为在 /etc/passwd 文件中,fish 被指向初始化但系统没有识别它。

我只需要一些方法来访问服务器而不执行此文件或只是恢复文件。

我尝试了一些使用 SSH 和 FTP 的不同方法,但我失败了。

编辑: 我使用数字海洋的恢复图像解决了我的问题

是否有一个帐户仍被配置为使用 /bin/sh、/bin/bash 或您可以用来登录的其他 shell?如果不是,您唯一的选择是重新启动到单用户或恢复模式,并使用 linux VT 控制台来解决问题。

您可能已经吸取了这一教训,但在进行此类更改后,请确保您可以在退出当前 shell 会话之前登录,从而失去对系统的访问权限。