环境:Win7 32bit + SecureCRT 6.5 中文
使用工作机上的SecureCRT登录公司内网的跳板机,发现很慢,每次都得等待好几分钟才弹出输出私匙密码的框。咨询了一下其他同事,发现他们都很正常,没碰到过我这种问题。
解决过程:
1.ping跳板机IP,延迟<=1ms,排除网络原因。
2.考虑是不是防火墙或杀软的问题,发现防火墙一直都是关闭状态(习惯从来不开防火墙),但是杀软开着,于是关闭杀软。再次尝试SecureCRT登陆跳板机,问题依旧排除。
3.考虑是不是电脑的问题,于是在自己笔记本上安装同一版本SecureCRT,笔记本连接公司内网。登陆跳板机,马上登陆成功,不会像工作机那样等待好几分钟,确定是工作电脑问题。
4.考虑是不是软件问题,于是又下了一个英文原版的SecureCRT7.1,发现问题依旧。使用putty登陆跳板机,马上登陆成功。
5.到了这一步,可以确定是工作机上的SecureCRT的问题,其他ssh软件无问题。
6.google之,大部分都是需要更改ssh服务器上的sshd_config文件等方法。这明显与我碰到的情况不符,排除。
7.继续google,有的说SecureCRT5碰到这种问题,改用SecureCRT6.6就行。还有的说取消了 session options-->ssh2-->鉴权-->GSSAPI 选项就可以了。都尝试了,还是无法解决问题。
8.不甘心,打开SecureCRT的跟踪选项,将其中的报错信息复制,google,搜到很多SecureCRT官方论坛(forums.vandyke.com)的帖子,均无法解决我的问题。
9.至此已经为这个问题纠结了整整1天的时间,总不能为了这么点问题重装系统吧,以后用putty算了。
10.第二天还是想试试能不能解决,继续google,还是没找到什么办法。
11.突然鬼使神差的打开了对应的Session配置文件(也就是SecureCRT配置目录的Sessions子目录下的跳板机对应的ini配置文件),发现有1个 GSSAPI Method 设置的值为 auto-detect,想起第8步中显示的日志里提示很多gssapi之类的错误,于是将它们的值改为none(不要问我为什么改为none,就是看了一下配置文件,多年程序生涯的直觉告诉我none应该是禁止的意思),重启SecureCRT。再次连接跳板机,瞬间弹出输入私匙密码的框,输入密码,立刻登录成功。
12.尼玛问题就这样解决了,此时此刻只想说一句:fuck!
补充:推测之所以出现这个问题是因为SecureCRT的bug导致没有将第7步中取消 session options-->ssh2-->鉴权-->GSSAPI 保存到配置文件中。