繁体   English   中英

扭曲的海螺-服务器/客户端

[英]Twisted Conch - Server/Client

我正在寻找创建类似于以下内容的Twisted Conch Server / Client SSH应用程序:

客户端<--- Key1 --->服务器/客户端<--- Key2 --->服务器

我想这就像SSH MITM或命令代理。

我已经阅读了类似Twisted相关问题的答案,例如: Twisted服务器-客户端数据共享,并且我了解传递客户端/服务器数据的原理。

我不确定的部分是用户身份验证。 我想通过扭曲的海螺应用程序将第一个客户端的登录详细信息传递给端点服务器。 有没有办法做到这一点?

另外,是否有可能进行单独的SSH密钥协商,然后在服务器和客户端之间传递所有数据,包括凭据和键入的任何命令?

不幸的是,这比看起来要复杂一些。 SSH经历了一些痛苦,试图避免这种MITM。 如果您不使用相同的密钥协商,则publickey密钥身份验证将不会成功,因为您要签名的字符串在连接的两端都是不同的(有关更多信息,请参阅RFC 7节)。

不过,密码验证仍然可以正常进行。 最简单的方法是创建一个twisted.conch.ssh.session.SSHSession子类,该子类侦听packetReceived方法上的数据包并将其转发到相应的transport.sendPacket

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM