安装 hexedit:

安装 hexedit:

我正在登录设置了 ssh 横幅的服务器。我想隐藏它(尤其是对于非交互式使用)。我没有访问该服务器的权限sshd_config

到目前为止,我发现的最佳解决方案是LogLevel ERROR在客户端上设置选项。问题是,这将抑制任何其他INFO级别的消息,而我不一定想隐藏这些消息(搜索 OpenSSH 源代码以logit获取示例)。我也可以使用,ssh -q但这会抑制更多消息。

还有其他更具体的解决办法吗?

答案1

据我所知,“ ssh -q”或“ LogLevel QUIET~/.ssh/config是使横幅静音的“传统”方法。因此,您已经对“ LogLevel ERROR”有了“更好的”妥协。

如果可以的话,更具体的解决方案是使用自定义修补版本的 ssh 客户端。

答案2

您还可以使用:

Banner none

/etc/ssh/sshd_config

答案3

安装 hexedit:

apt-get update && apt-get install hexedit

备份你的 sshd 二进制文件并创建可编辑的工作副本(以 root 身份):

  cp -p /usr/sbin/sshd /tmp/sshd.backup
  cp -p /tmp/sshd.backup /tmp/sshd.new

使用 hexedit 更新二进制文件:

hexedit /tmp/sshd.new

按 T​​AB 键从 HEX 区域切换到 ASCII 区域。

使用 CTRL+S 调出搜索提示并搜索横幅中您想要隐藏的文本,例如“OpenSSH_7.4”。

你应该看到类似这样的内容:

0007DA54   61 67 65 6E  74 00 00 00  4F 70 65 6E  agent...Open
0007DA60   53 53 48 5F  37 2E 34 70  31 20 52 61  SSH_7.4p1 Ra
0007DA6C   73 70 62 69  61 6E 2D 31  30 2B 64 65  spbian-10+de
0007DA78   62 39 75 32  00 00 00 00  4F 70 65 6E  b9u2....Open

使用箭头键突出显示要更新的字符串的开头并输入替换内容。

注意不要超出原始横幅的长度范围。如果您只想将每个单词设置为“00”,也可以按 TAB 切换回 HEX 区域。

您的更改应类似于:

0007DA54   61 67 65 6E  74 00 00 00  48 65 72 65  agent...Here
0007DA60   20 62 65 20  64 72 61 67  6F 6E 73 2E   be dragons.
0007DA6C   20 54 75 72  6E 20 42 61  63 6B 00 00   Turn Back..
0007DA78   00 00 00 00  00 00 00 00  4F 70 65 6E  ........Open

使用 CTRL+x 和 Y 保存您的更改。

检查是否有我们遗漏的实例(我们现在预计没有输出):

strings /tmp/sshd.new | grep Rasp

更新 sshd 并重新启动服务:

rm /usr/sbin/sshd
cp -p /tmp/sshd.new /usr/sbin/sshd
systemctl restart ssh.service

检查您是否仍然可以通过 SSH 接入(否则请恢复备份或从您的包管理器重新安装 OpenSSH!):

ssh -vv user@ip

笔记!!

此更改只是暂时的,因为每次更新 OpenSSH 时,二进制文件都会被替换。

相关内容