我想暂时从 ip 1.2.3.4 授予 root 访问权限,仅针对当前会话(直到下一次 sshd 或服务器重启)
我可以将其添加到sshd_config
,然后记得将其删除:
AllowUsers [email protected]
但是有更好的方法吗?我可以在不编辑配置文件的情况下更改当前运行的 sshd 守护进程的当前设置吗?
我想暂时从 ip 1.2.3.4 授予 root 访问权限,仅针对当前会话(直到下一次 sshd 或服务器重启)
我可以将其添加到sshd_config
,然后记得将其删除:
AllowUsers [email protected]
但是有更好的方法吗?我可以在不编辑配置文件的情况下更改当前运行的 sshd 守护进程的当前设置吗?
立即将其删除,这样就没有什么可记住的,也没有什么可忘记的。我是说:
sshd_config
,保存更改。sshd_config
回来,保存更改。这样当前正在运行的(即新启动的)守护进程使用您的临时配置,因为它是它已读取的配置;但是未来的守护进程将使用常规配置,因为配置文件已经被编辑回来了。临时配置不再存在,除了在当前运行的守护进程的内存中,所以直到下一次
sshd
或服务器重新启动,完全按照你的意愿。(1) 和 (3) 可以在文本编辑器的单个实例中方便地完成,而无需退出编辑器,只要您可以从另一个控制台执行 (2)。如果您的文本编辑器提供“撤消”功能,则可以使用它来取消编辑时出错的风险。
笔记:
sshd
当 OpenSSH 收到挂断信号 SIGHUP 时,它会重新读取其配置文件,方法是使用启动时使用的名称和选项执行自身。无论sshd
OpenSSH 是否作为 systemd 服务启动或以其他方式启动,此方法都应该有效。重新启动(甚至停止)
sshd
不会影响现有连接。在 FreeBSD 中,
rc
系统提供了一种将标志传递给sshd
守护进程的机制,即sshd_flags
在启动/重新启动之前设置变量sshd
。系统将rc
查找文件名 /etc/rc.conf.d/sshd/* 并在任何“服务 sshd”调用中获取所有此类文件。这使得在正确目录中创建一次性唯一文件名、重新启动服务、删除该唯一文件名变得相当简单,然后我们就完成了。据我公认的有限知识,Linux 缺少一个专用目录,人们可以在该目录中放置任意数量的任意命名文件,以配置特定守护进程的运行时行为。我试图通过修改 /etc/default/ssh 以从特定位置 ( ) 搜索和源文件来模仿 (Ubuntu) Linux 中的 FreeBSD 机制,
/etc/default/ssh.tmp.*
但没有成功。通常在我手头的Linux系统上,/etc/default/ssh
名义上似乎有:在某些系统上,这里的关键变量名称似乎是
OPTIONS
,因此请检查您的systemd
服务文件sshd
以确定。鉴于 A 计划行不通,我降低了期望并选择了 B 计划,这与修改您的计划基本相同,
sshd_config
只是由于默认情况下/etc/default/ssh
没有内容,因此在此处附加所需的运行时选项可能比在此处附加您想要的运行时选项更安全是不是要弄乱你的/etc/ssh/sshd_config
文件。此外,由于 的语法/etc/default/ssh
是 shell 语法,once 感觉相对安全,因为通过附加SSHD_OPTS
任何先前分配的 SSHD_OPTS 的更改值将被下一次调用覆盖,然后一旦/etc/default/ssh.safety
重命名回/etc/default/ssh
.所以从:
和:
然后:
我们可以:
注意这里
sshd
运行的是我们想要的短期命令行选项!另请注意,它
/etc/default/ssh
已恢复到未更改的状态:这意味着下次我们:
我们会看到:
回到裸露的库存
sshd
服务。同样,这与修改本质上是相同的技巧,
/etc/ssh/sshd_config
只是如果sshd_config
被弄乱或删除(甚至重命名),与从类似的 hosed/etc/default/ssh
文件中恢复相比,您可能更难从中恢复。由于/etc/default/ssh
默认情况下是空的,rm
因此在最坏的情况下您可以简单地sshd
返回到开始尝试玩聪明把戏之前的运行方式。不,您不能在不编辑配置文件的情况下更改当前运行的 sshd 守护进程的设置。sshd 守护进程在启动时读取其配置,因此您对配置文件所做的任何更改只有在您重新启动守护进程时才会生效。
编写您自己的单元文件
mysshd.service
,指向一个sshd_config
包含所有需要更改的不同文件,然后启动它。包括一个Conflicts=sshd.service
以便停止正确的 sshd 服务。一次只能运行这两项服务中的一项。当正确的 sshd 服务重新启动时,mysshd 将停止。您还可以
-o
向 中添加选项ExecStart=
并使用原始sshd_config
文件,如下所示。他们将被首先考虑。(此示例是从 的输出中提取的systemctl cat sshd
。这在其他发行版中可能有所不同)。房间里的大象是添加 an
AllowUsers x@y
只允许该用户,不允许其他用户。