【问题标题】:bash: scritp for kicking all ssh-entries execpt the localhostbash:用于踢除 localhost 之外的所有 ssh 条目的脚本
【发布时间】:2018-04-13 08:29:30
【问题描述】:

我正在编写一个简短的脚本来作为 cronjob。脚本的功能应该是踢出所有 ssh 条目(通过机器上的 ssh 连接的所有主机),除了一个特殊的主机(主要是 localhost 或我所在的主机)。我的想法是:

kill -9 $(pgrep -f ssh)

但这会踢掉所有 ssh 条目(包括我所在的主机)。如何更改脚本以使其不会踢 localhost ?

【问题讨论】:

  • 这些其他 SSH 会话是属于您还是其他人?

标签: linux bash ubuntu networking ssh


【解决方案1】:

您可以做的是拒绝所有不是来自本地主机的 ssh 连接。转到 /etc/ssh/sshd_config 并添加一行 AllowUsers *@localhost,然后重新启动 ssh 服务器。这将只允许来自本地主机的用户通过 ssh 连接。如果您想将特定用户或域列入黑名单,也可以使用DenyUsers youruser@yourdomain。如果您列入黑名单/不在白名单中的用户尝试连接,他们将收到 Permission denied 消息。

【讨论】:

  • 我知道他只想偶尔将所有人踢出去,但他想保持对所有人的 ssh 访问。在某种“我踢每个人,如果他们活跃,他们会重新连接”。所以也许只是重新启动 ssh 守护进程?
  • @CristianRamon-Cortes 好吧,重新启动 ssh 守护进程也会踢他,他说他不希望他使用的主机被踢。但我真的不明白定期踢所有人的意义吗?
  • 确实如此。我也不明白这一点,但也许他可以进一步描述用例,以便我们提供更准确的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 1970-01-01
  • 2015-01-02
  • 2016-08-02
  • 2018-10-29
相关资源
最近更新 更多