为了检查队列中的所有服务器是否不支持已弃用的算法,我(以编程方式)这样做:telnet localhost 22 Trying 127.0.0.1...Connected to localhost. Escape character is '^]'. SSH-2.0-OpenSSH_8.0p1 Ubuntu-6build1SSH-2.0-Censor-SSH2 4&m����&F �V��curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1Arsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256,ssh-ed25519lchacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.comlchacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com�umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1�umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1none,zlib@openssh.comnone,zlib@openssh.comSSH-2.0-Censor-SSH2Connection closed by foreign host.这应该是建立连接的各个阶段支持的算法列表。(kex、主机密钥等)。每次我跑步时,我都会在开始时得到不同的奇数数据——总是不同的长度。有一个 nmap 插件 - ssh2-enum-algos - 它以完整的形式返回数据,但我不想运行 nmap;我有一个打开端口并发送查询的 go 程序,但它与 telnet 相同。我错过了什么,我该如何解决?为了比较,这里是 nmap 脚本输出的前几行:$ nmap --script ssh2-enum-algos superStarting Nmap 7.80 ( https://nmap.org ) at 2019-12-27 22:15 GMTNmap scan report for super (192.168.50.1)Host is up (0.0051s latency).rDNS record for 192.168.50.1: supermasterNot shown: 998 closed portsPORT STATE SERVICE22/tcp open ssh| ssh2-enum-algos: | kex_algorithms: (12)| curve25519-sha256| curve25519-sha256@libssh.org| ecdh-sha2-nistp256| ecdh-sha2-nistp384| ecdh-sha2-nistp521
2 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
在某些情况下,您可以指定要使用的算法,如果您指定不支持的算法,服务器将回复支持的算法列表。
例如,要检查支持的密钥交换算法,您可以使用:
ssh 127.0.0.1 -oKexAlgorithms=diffie-hellman-group1-sha1
diffie-hellman-group1-sha1 不安全,大多数现代服务器都应该缺少它。服务器可能会响应以下内容:
Unable to negotiate with 127.0.0.1 port 22: no matching key exchange method found. Their offer: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256 Exit 255
键入:“ssh -Q cipher | cipher-auth | mac | kex | key”将为您提供客户端支持的算法列表
键入:“man ssh”将让您查看可以使用 -o 参数指定的选项,包括 Cipher、MAC 和 KexAlgorithms
POPMUISE
TA贡献1765条经验 获得超5个赞
打开一个到端口 22 的 tcp 连接,(在 golang 中,使用 net.Dial)然后接受和发送连接字符串使我们能够从 Reader 中读取()进行连接。因此,数据采用 RFC 描述的标准格式。由此,我可以列出 ssh 连接的每个阶段支持的算法。这对于衡量所提供的内容非常有用,而不是看起来配置的内容(很容易配置 sshd 以使用不同的配置文件)。
能够从安全 POV 中进行操作是一件有用的事情。在我可以找到的每个版本的 ssh 上进行了测试,从非常旧的 solaris 或 AIX 机器上的 1.x 到 RHEL 8.1。
- 2 回答
- 0 关注
- 955 浏览
添加回答
举报
0/150
提交
取消