运行级别 3 上的 ssh 服务器

运行级别 3 上的 ssh 服务器

我一直在尝试在桌面上设置 ssh 服务器以进行远程访问,但遇到了一些问题。我发现的第一个问题是 sshd 无法在启动时启动。我运行:

sudo service sshd start

我能够手动从计算机本身 ssh 进入计算机,所以我知道 ssh 守护程序已正确安装。现在我只想让它在启动时启动。

经过调查,我发现

/etc/rc.d/rc3.d 

我找到了一个脚本

K##sshd

或者类似的东西。我相信 K 意味着当进入运行级别 3 时,它正在关闭 sshd。我只需要创建一个文件 S##sshd 来重新启动它,还是有更好的方法可以做到这一点。我想我应该听取一些更有见识的意见,然后再凭直觉到处重命名和创建随机文件。

答案1

我认为 K 意味着当进入运行级别 3 时,它正在关闭 sshd

是的。K 代表 Kill。

这是旧式 SystemV 启动。基本脚本都在 init.d 中,在实际运行脚本的 rc?.d 目录中有各种具有特定命名约定(S00...、K99...)的符号链接。

当你改变运行级别(比如从 1 到 3)时,init 进程会生成一个脚本,该脚本进入旧运行级别的目录(/etc/rc.d/rc1.d/),并运行所有以 K 开头的脚本,如下所示

K_NUMBER_some_service stop

然后进入新运行级别的目录(本例中为 /etc/rc.d/rc3.d)并运行所有以 S 开头的脚本

S_NUMBER_some_service start

脚本按字母顺序运行,该顺序通常由数字范围是 00-99。顺序很重要 - 您不会想在开始联网之前启动 sshd。

理论上,如果您知道如何确定应以哪个编号/顺序运行,则可以手动执行符号链接。大多数脚本都以注释形式包含此顺序编号(尝试:)head /etc/rc.d/init.d/sshd。但最好使用适当的工具来完成这项工作。在 Redhat 上,有ntsysv,还有system-config-services。如果您愿意,甚至可以使用命令行工具chkconfig。我认为

chkconfig --level 2345 sshd on

会按照您的意愿行事。使用以下方法验证chkconfig --list sshd

答案2

Redhat 使用 ntsysv 工具来启用/禁用 rcN.d 目录的服务。

答案3

如果您希望在运行级别 3(多用户模式,仅控制台登录)登录,您要做的就是$ sudo init 3。另一种方法是添加内核参数“3”,并在 grub 启动时按“e”来修改内核启动选项。

警告:将其应用于运行级别 5 上运行的机器(多用户模式,带有显示管理器以及控制台登录)将杀死 X11 并强制您以控制台模式登录。

相关内容