为了账号安全,请及时绑定邮箱和手机立即绑定

ssh 客户端显示服务器支持的算法

ssh 客户端显示服务器支持的算法

Go
慕标5832272 2022-04-26 15:52:11
为了检查队列中的所有服务器是否不支持已弃用的算法,我(以编程方式)这样做: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


查看完整回答
反对 回复 2022-04-26
?
POPMUISE

TA贡献1765条经验 获得超5个赞

打开一个到端口 22 的 tcp 连接,(在 golang 中,使用 net.Dial)然后接受和发送连接字符串使我们能够从 Reader 中读取()进行连接。因此,数据采用 RFC 描述的标准格式。由此,我可以列出 ssh 连接的每个阶段支持的算法。这对于衡量所提供的内容非常有用,而不是看起来配置的内容(很容易配置 sshd 以使用不同的配置文件)。

能够从安全 POV 中进行操作是一件有用的事情。在我可以找到的每个版本的 ssh 上进行了测试,从非常旧的 solaris 或 AIX 机器上的 1.x 到 RHEL 8.1。


查看完整回答
反对 回复 2022-04-26
  • 2 回答
  • 0 关注
  • 955 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信