如何更改 Paramiko SSH Banner/version?

How to change Paramiko SSH Banner/version ?

我正在开发自定义 SSH 服务器,我希望更改 Paramiko (http://www.paramiko.org/) SSH Banner/version。

这是 nmap 输出:

PORT   STATE SERVICE VERSION
22/tcp open  ssh     Paramiko Python sshd 2.1.1 (protocol 2.0)

我想将其更改为:

PORT   STATE SERVICE VERSION
22/tcp open  ssh     My sshd 1.0 (protocol 2.0)

这是我用来创建 SSH 服务器的代码:https://github.com/paramiko/paramiko/blob/master/demos/demo_simple.py

有什么想法吗?

谢谢

Transport class 的 client/server comes from the local_version 属性使用的横幅,因此如果您在调用 start_server()start_client() 在传输上那么它应该可以工作,例如:

transport.local_version = 'SSH-2.0-My sshd 1.0'
transport.start_server(...)

请注意,nmap 报告的内容取决于 nmap-service-probes 中的哪个探测器被触发,因此您在 nmap 中的输出可能与您预期的不同。与 paramiko 匹配的行是:

match ssh m|^SSH-([\d.]+)-paramiko_([\w._-]+)\r?\n| p/Paramiko Python sshd/ v// i/protocol /