为特定用户禁用 SSH MOTD/横幅

为特定用户禁用 SSH MOTD/横幅

我有一个自定义外壳,/bin/它返回回声并存在。我有一个仅链接到该 shell 的用户,这样当有人尝试仅通过 pubkey 使用该用户 ssh 进入服务器时,自定义 shell 将回显某些内容并立即退出(在回显后立即关闭 ssh 连接)。

问题是它正在工作,但在身份验证后显示默认的 Ubuntu MOTD / Banner,而我只想返回回显。

预期的

local@sever:~$ ssh honeypot@remote-server
Welcome 1.2.3.4 | you've been logged
Connection to remote-server closed.
local@server:~$

怎么了

local@sever:~$ ssh honeypot@remote-server
Welcome to Ubuntu 16.04.x LTS (GNU/Linux x.x.x-xxx-generic x86_64)

* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://ubuntu.com/advantage

Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud

6 packages can be updated.
0 updates are security updates.

New release '18.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


*** System restart required ***
Last login: Thu Oct 2 01:08:16 2017 from 1.2.3.4
Welcome 1.2.3.4 | you've been logged
Connection to remote-server closed.
local@server:~$

注意:我不想为所有其他用户禁用 MOTD/Banner,并且我已经尝试过Match User honeypot Banner nonesshd,但它不起作用。还尝试了/etc/profile我使用 whoami 检查该用户的方法。

编辑:我找到了一个解决方法,作为答案发布,但我仍在寻找合适的答案。

答案1

登录消息可能来自几个地方。如果配置,则首先显示 ssh 横幅,然后显示/etc/motd(这是一个由管理员创建和维护的文本文件,或者可以由脚本定期生成的文本文件的内容)。我认为 Ubuntu 使用不同的方法 -man motd可能一些启发...)。

最后,用户的 shell rc 文件可以直接或通过调用其他实用程序显示更多消息。

如果已配置,则可以通过Banner none在配置文件中设置来全局禁用 ssh 横幅,或者为了更好地控制,您可以使用类似

Match User honeypot
    Banner none

无论哪种情况,请重新启动sshd以使更改生效。

如果要抑制/etc/motd单个用户,请在该用户的主目录中创建一个名为.hushlogin.如果此文件存在,程序在启动登录 shell 之前login将不会显示 , 的内容。/etc/motd如果用户可以登录并获得终端,他们就可以随意删除该文件。

答案2

解决方法

local@sever:~$ ssh honeypot@remote-server <*>
Welcome 1.2.3.4 | you've been logged
local@server:~$

<*>:字面上是任何命令、单词或数字。

相关内容