不知道密码的情况下通过 SSH 以 root 身份登录(sudo -s)?

不知道密码的情况下通过 SSH 以 root 身份登录(sudo -s)?

我使用 SSH 连接到服务器:

ssh user@host

然后我使用以下命令切换到 root 用户:

sudo -s

提供我自己的密码而不是 root 用户密码 - 据我所知,这是有效的,因为我在 sudoers 文件中。

即使我没有 root 用户密码,有没有办法通过 SSH/login 一步切换到 root 用户?

重点是,我不想输入两次密码

答案1

有两种简单的方法可以实现此目的:

  1. 您允许用户通过 ssh 登录,您可以通过编辑文件/etc/ssh/sshd_config并设置PermitRootLogin真的,这将允许 root 通过 ssh 连接。
  2. 您为 ssh 用户创建一个自定义脚本,使其自动以 root 身份登录。这可以通过文件完成/etc/passwd,您会注意到您的用户将看起来像这样:

your_user:x:1001:1001:Oqhax,,,:/home/your_user:/bin/bash

要在登录时运行自定义脚本,您需要更改部分/bin/bash并添加自己的脚本来运行您想要的任何代码,这可以包括类似 sudo -s 的内容,然后在自定义脚本的末尾您也可以/bin/bash再次调用,所以你passwd看起来像这样:

your_user:x:1001:1001:Oqhax,,,:/home/your_user:/bin/your_script

请注意,第二种选择将影响您的 ssh 登录行为,因此,为了测试这一点,请确保您可以处理犯错并且无法以您的用户身份登录的情况,因此请确保您至少暂时拥有通过另一个用户或 root 的后门 ssh 访问权限,如选项 1 中所述,以便您重新登录并纠正任何错误,直到您的设置正常工作。

更新:继续下面的评论,值得一提的是,这不仅影响 ssh 登录,还影响该用户的任何登录(我假设您的要求是该用户始终以 root 身份登录,并且您不希望允许实际的 root 用户通过 ssh 登录)。还值得注意的是,这是一个更简单的解决方案,而解决方案可能要严格和复杂得多,仅适用于 SSH,您的问题没有涉及很多细节。

正如评论中提到的,您也可以通过以下方式实现相同的行为:/etc/ssh/sshrc我只是更喜欢编辑原始的 /etc/passwd,以便将来可以清楚地看到正在发生的事情,并且需要您适应后果,虽然这sshrc很棒,但如果您碰巧忘记了如何设置系统,那么将来的故障排除会变得更加困难,说实话,这种情况经常发生。但完全不暴露 root 用户确实是一个好习惯,这将为您提供更多灵活性,让您在将来尝试各种事情并自定义您的 sudoer 权限。

希望这可以帮助

相关内容