使用telnetlib时,我注意到一些有趣的变量:
AUTHENTICATION = chr(37) # Authenticate
XAUTH = chr(41) # XAUTH
PRAGMA_LOGON = chr(138) # TELOPT PRAGMA LOGON
SSPI_LOGON = chr(139) # TELOPT SSPI LOGON
另外,this page列出了一些详细描述AUTHENTICATION
选项的rfc。在
如果我理解正确,如果telnet服务器支持身份验证,那么在连接到它时,我应该正在接收IAC DO AUTHENTICATION
。但是,当尝试连接到Linux机器上的telnetd时,我没有收到这个选项,因此我无法发送IAC WILL AUTHENTICATION
。在
我的理解正确吗?有没有办法让服务器执行身份验证?甚至可以自动验证telnet会话吗?(没有听“登录:”、“用户名:”、“密码:”和类似的提示)
是的,您正确地理解了RFC 1416。如果服务器支持身份验证,则应首先发送
DO
。无论如何,您都可以尝试发送WILL
,但这违反了规范,而且可能无论如何都不起作用。在在Linux telnetd中,您可能是指netkit telnetd。据我在其个人主页上看到:
所以我只能说它不能这么做。我使用的是OpenBSD telnetd(
telnet-bsd
包,在Gentoo中);它似乎有一些身份验证位,但我根本无法让它工作。我怀疑它只支持基于Kerberos的身份验证。在查看RFC 2941中的身份验证类型列表,似乎大多数身份验证类型都从未指定过。看看这些,DSS/DSA最有趣(它也用于SSH),但我想要找到一个兼容的服务器和客户机是非常困难的。遗憾的是,那里似乎没有关于简单(明文)认证的建议。在
所以,总而言之:是的,如果有人实现了它,它是可能的。但由于telnet实际上已经死了,我怀疑您是否能找到相应的服务器实现。即使你这样做了,你也必须自己编写客户端,这对于支持的方案来说并不容易。所以我怀疑这样做是否值得。在
相关问题 更多 >
编程相关推荐