关于telnet,不知道telnet的朋友可以Google一下,在Google的搜索栏里敲入define : telnet。
利用telnet,最方便的是可以通过本地计算机来操作远程主机。虽然telnet只是CUI界面,不过也已经十分够用了。
最近公司的有一台主机是win2000 server。有一些试验交给公司外部的人员操作,外部人员则通过telnet操作win2000主机,最初只能ping通无法用telnet连接,发现问题出在telnet的认证系统上,于是小小调查了一番。
2000/XP上提供了telnet的标准服务(不过可能telnet服务并没有启动),不过与UNIX上telnet还是有区别的。
先看2000,2000上默认的telnet认证是NTLM(windows NT Lan Manager)认证系统。UNIX用户如果想通过UNIX的telnet客户端来连接2000主机的话,是肯定被拒否的。本来的telnet协议的用户名和密码用plain-text(非加密)的方式传送,而基于NTLM认证的telnet协议的用户和密码是通过加密方式传输到被连接方的主机,并且,用户名和密码不用输入,那么问题是,用户名和密码在什么地方输入?在登入windows时所输入的用户名和密码会被加密保存,以便在telnet连接的时候使用。所以客户端必须使用和主机用相同的用户名和密码登入系统,才能连接到主机。
作为2000的扩展机能,NTLM认证一般来说在别的非windows的操作系统上是没有的(当然2000以前的版本也没有)。不过想用UNIX来通过telnet连接200主机,则必须将NTLM设定为无效。在2000上可以使用tlntadmn这个命令来修改。
在命令行键入tlntadmn后,有一个大致如下的菜单:
0.) 该应用终了
1.) 用户一览
2.) 终了当前用户的session
3.) 设定表示/变更
4.) 开始telnet服务
5.) 停止telnet服务
这时候选择3.设定表示/变更,然后会出现大致如下的菜单:
0.) 终了当前菜单
1.) AllowTrusteDomain
2.) AltKeyMapping
3.) DefaultDomain
4.) DefaultShell
5.) LoginScript
6.) MaxFailedLogins
7.) NTLM
8.) TlenetPort
选择7.NTLM,这时候会显示当前的设定值为“2”,然后会出现是否修改这个值,将该值改为多少之类的对话。该设定值的含义是:
0 通常的login认证
1 login与NTLM并用
2 NTLM认证
将该值改为0即可。
XP中的telnet的默认设定值与2000的不同,XP默认为的认证方式是login与NTLM两者都有效的方式,先进行NTLM,通不过时才转换成普通的login。因此XP的机器上不用特别的设定,UNIX客户端也能对其进行连接。Login好还是NTLM好当然是众说纷纭,微软当然也想到用户会把认证方式改来改去,还是这个tlntadmn命令。
tlntadmn config sec = -NTLM +passwd
(去掉
NTLM
认证
,
加上
login
认证)
对两者都使用
+
的是
XP
本来默认的方式,同样也可以对两者都使用
-
,这样就变成了不需要认证。