sshd服务连接之后会收到字符串:
SSH-2.0-OpenSSH_9.5
容易被hacker识别此服务为sshd服务。
是否可以通过修改此banner达到让人无法识别此服务的目的呢?
不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。
SSH- 开头, 接版本号,再接具体的软件版本号。
改成HTTP- 这样子是不行的。
在进行连接时,会报错,见下图。
用windows 的cmd连接 sshd服务,报错。
修改和编译的过程
./configure \
--prefix=/usr/local/openssh \
--sysconfdir=/etc/ssh \
--with-pam \
--without-debug \
CFLAGS="-O2 -g0"
//version.h
#define SSH_VERSION "OpenSSH_9.5"
// kex.c
if ((r = sshbuf_putf(our_version, "SSH-%d.%d-%.100s%s%s\r\n",
PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, SSH_VERSION,
version_addendum == NULL ? "" : " ",
version_addendum == NULL ? "" : version_addendum)) != 0) {
oerrno = errno;
error_fr(r, "sshbuf_putf");
goto out;
}
直接以全路径运行当前目录下的sshd程序,需要建立一个空目录。
mkdir /var/empty