bash - 通过在脚本中修改/etc/ssh/sshd_config 来禁用 ssh root 登录?

标签 bash shell ssh

在设置我的树莓派的过程中,我想防止通过 ssh 进行 root 登录。与往常一样,它是一个“scriptlet”(由运行者调用)。
我的研究告诉我,即使在 systemd 时代,/etc/ssh/sshd_config是要修改的文件。到现在为止还挺好。以我粗浅的理解,需要做的是:逐行读取配置文件,匹配“PermitRootLogin yes”(空格匹配);如果不匹配,则将该行写入另一个文件,如果匹配,则将其替换为“PermitRootLogin no”,然后写入另一个文件,最后将原来的配置文件替换为新文件,然后重新启动sshd通过系统的东西。
在 Perl 中,我会阅读整个文件,replace()行,并将内容写回另一个文件。但正如这位年轻的佛教徒所说:“没有 Perl!”
请仅使用 Bash(2)。

最佳答案

脚本:

$ sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config

然后:
$ service ssh reload

关于bash - 通过在脚本中修改/etc/ssh/sshd_config 来禁用 ssh root 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36070562/

相关文章:

bash - 使用该行的一部分索引到 file2 并查找值后,如何将值附加到 file1 中的每一行?

linux - Unix Shell 脚本 - 命令中的错误

shell - 从 RPM 规范文件中提取 shell 脚本以进行静态分析

ssh 和 sudo : pam_unix(sudo:auth): conversation failed, auth 无法识别 [用户名] 的密码

ssh - Telnet禁用通过telnet的作业控制

ios - 为 iOS 推送通知准备证书?

bash - 如何定义自己的终端选项卡补全

linux - 寻找一个非常简单的 Bash 脚本来自动按键

c - 如何在 C 中正确写入 bash fifo?

java - 如何从 shell 脚本调用 Java 程序,而不让 shell 脚本等待程序完成执行?