远程 shell 上有一个程序无限期地运行,它不允许我访问它的登录 shell。(即,每当我登录时,我都会看到该程序在控制台上运行)。
我不想发送SIGKILL
或SIGSTOP
或SIGSEGV
等来通过来停止它ssh
。
是否可以发送并访问正常的shell?
答案1
如果问题出在 中/etc/profile
,请注意,通过 SSH,它是为 SSH 本身启动的交互式 shell 提供来源。如果您运行另一个命令,则不会提供来源,即使该命令是您的 shell:
ssh -t user@server bash
当指定命令时,SSH 假定您不是以交互方式运行它,并且不会分配伪 tty(这可能会导致某些程序出现问题)。-t
无论如何都需要告诉它分配一个 pty。
如果您的 SSH 服务器使用选项,那么所有这些都毫无意义ForceCommand
。如果使用选项,那么无论您在命令中指定什么ssh
,服务器配置为运行的任何内容都将运行。
答案2
听起来您用户的登录 shell 不是标准的。您尝试过使用 登录吗ssh user@host /bin/sh
?如果成功,您将能够找出正在运行的进程并将其终止。