当 shell 更改或崩溃但仍需要远程访问时,如何 ssh linux?

当 shell 更改或崩溃但仍需要远程访问时,如何 ssh linux?

我在远程位置运行 Linux(CentOS 6.0)。它有动态 IP 地址,因此我安装了 noip2 服务并复制了文件 cp redhat.noip2.sh /etc/profile.d/noip.sh。

在这里你可以看到 noip.sh 脚本在重启后一直运行()。

此后,系统重新启动一次后,它就再也没有正确的 shell。因此,当我尝试远程 ssh 服务器时,我无法登录,也无法执行任何操作。有人能解决这个问题吗?以下是我尝试的详细信息:当我调试 ssh 时,我看到debug1: Authentication succeeded (password).命令也已发送,但什么也没发生。我就是无法修复它。

全部失败:

ssh root@host 'rm -fr /etc/profile.d/noip.sh'
scp emptynoip.sh root@host:/etc/profile.d/noip.sh
ssh root@host /bin/sh
ssh root@host /bin/bash
ssh root@host --norc -i
ssh root@host -- --norc -i
ssh root@host bash --norc -i 
ssh root@host /bin/bash -i './etc/profile.d/noip2 stop'
ssh root@host /bin/bash -i './etc/profile.d/noip stop'
ssh root@host /bin/bash -l './etc/profile.d/noip stop'

还有更多... 我尝试过的组合都失败了。有没有我可以尝试的单一选项?

答案1

两种可能的解决方案:

  • 以其他用户身份登录,然后使用 sudo 或 su 删除 noip.sh
  • 使用 sftp 删除 noip.sh

顺便提一下,关于动态 IP 问题dd客户端是一个更强大的解决方案,它支持许多服务、ifup/down 挂钩以及守护进程模式。

答案2

解决了。

脚步:

  • 我亲自进入了服务器
  • 然后我仍然无法登录,即使尝试物理登录,它总是询问登录提示
  • 所以我按下 Shift 键进入 grub 菜单,但情况仍然一样,它总是询问登录提示(甚至不允许我更改运行级别)

解决方案:

  1. 启动时按 Shift 键
  2. Grub 菜单按 a
  3. 添加“init=/bin/sh”
  4. shell 出现,然后应用 rm -fr /etc/profile.d/noip.sh(由于只读而失败)

  5. 安装、卸载 /

  6. rm -fr /etc/profile.d/noip.sh 有效

  7. 初始化 6(失败)

  8. 关闭电源然后打开(解决了所有问题)

现在这个问题已经解决,现在没有问题了。希望它能在未来帮助到其他人。(永远不要在 /etc/profile.d/... 中放入任何东西)

相关内容