apache-sshd-0.8针对服务器升级ssh7.5bug修改

最近发现服务升级到ssh7.5以后,通过mina连接服务器,总是被服务器连接重置,报错如下

Connection to 192.168.186.152 closed by remote host.
Connection to 192.168.186.152 closed.

然后跟踪mina代码日志如下:

08-09 01:16:13,546 DEBUG  [org.apache.sshd.server.kex.DHG14] [NioProcessor-3] 125: Send SSH_MSG_KEXDH_REPLY
08-09 01:16:13,546 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 821: Send SSH_MSG_NEWKEYS
08-09 01:16:13,547 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 236: -----handleMessage------end
08-09 01:16:13,549 WARN   [org.apache.sshd.server.session.SessionFactory] [NioProcessor-3] 61: AbstractSessionIoHandler-----messageReceived()--------
08-09 01:16:13,549 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 132: -----handleMessage------start
08-09 01:16:13,549 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 134: Received packet SSH_MSG_NEWKEYS
08-09 01:16:13,550 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 192: Received SSH_MSG_NEWKEYS
08-09 01:16:13,550 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 236: -----handleMessage------end
08-09 01:16:13,589 WARN   [org.apache.sshd.server.session.SessionFactory] [NioProcessor-3] 61: AbstractSessionIoHandler-----messageReceived()--------
08-09 01:16:13,590 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 132: -----handleMessage------start
08-09 01:16:13,590 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 134: Received packet SSH_MSG_SERVICE_REQUEST
08-09 01:16:13,590 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 204: Received SSH_MSG_SERVICE_REQUEST 'ssh-userauth'
08-09 01:16:13,590 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 418: ----userAuth-----start
08-09 01:16:13,590 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 420: Accepting user authentication request
08-09 01:16:13,590 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 427: Authorized authentication methods: password
08-09 01:16:13,590 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 546: ----userAuth-----end
08-09 01:16:13,591 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 236: -----handleMessage------end
08-09 01:16:13,591 WARN   [org.apache.sshd.server.session.SessionFactory] [NioProcessor-3] 61: AbstractSessionIoHandler-----messageReceived()--------
08-09 01:16:13,591 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 132: -----handleMessage------start
08-09 01:16:13,591 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 134: Received packet SSH_MSG_USERAUTH_REQUEST
08-09 01:16:13,591 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 224: Received SSH_MSG_USERAUTH_REQUEST
08-09 01:16:13,591 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 418: ----userAuth-----start
08-09 01:16:13,592 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 446: Authenticating user 'dingxueqian,127.0.0.1' with method 'none'
08-09 01:16:13,592 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 478: Unsupported authentication method 'none'
08-09 01:16:13,592 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 546: ----userAuth-----end
08-09 01:16:13,592 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 236: -----handleMessage------end
08-09 01:16:16,053 WARN   [org.apache.sshd.server.session.SessionFactory] [NioProcessor-3] 61: AbstractSessionIoHandler-----messageReceived()--------
08-09 01:16:16,054 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 132: -----handleMessage------start
08-09 01:16:16,054 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 134: Received packet SSH_MSG_USERAUTH_REQUEST
08-09 01:16:16,054 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 224: Received SSH_MSG_USERAUTH_REQUEST
08-09 01:16:16,054 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 418: ----userAuth-----start
08-09 01:16:16,054 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 446: Authenticating user 'dingxueqian,127.0.0.1' with method 'password'
08-09 01:16:16,054 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 468: Authentication succeeded
08-09 01:16:16,054 INFO   [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 532: Session dingxueqian,127.0.0.1@/192.168.186.152:56913 authenticated
08-09 01:16:16,054 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 546: ----userAuth-----end
08-09 01:16:16,055 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 236: -----handleMessage------end
08-09 01:16:16,055 WARN   [org.apache.sshd.server.session.SessionFactory] [NioProcessor-3] 61: AbstractSessionIoHandler-----messageReceived()--------
08-09 01:16:16,055 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 132: -----handleMessage------start
08-09 01:16:16,055 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 134: Received packet SSH_MSG_CHANNEL_OPEN
08-09 01:16:16,056 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 578: ----channelOpen-----start
08-09 01:16:16,056 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 584: Received SSH_MSG_CHANNEL_OPEN session
08-09 01:16:16,056 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 629: ----future.isOpened()----start
08-09 01:16:16,056 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 639: ----future.isOpened()----end
08-09 01:16:16,056 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 666: ----channelOpen-----end
08-09 01:16:16,056 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 236: -----handleMessage------end
08-09 01:16:16,057 WARN   [org.apache.sshd.server.session.SessionFactory] [NioProcessor-3] 61: AbstractSessionIoHandler-----messageReceived()--------
08-09 01:16:16,057 WARN   [org.apache.sshd.server.session.SessionFactory] [NioProcessor-3] 61: AbstractSessionIoHandler-----messageReceived()--------
08-09 01:16:16,057 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 132: -----handleMessage------start
08-09 01:16:16,057 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 134: Received packet SSH_MSG_CHANNEL_REQUEST
08-09 01:16:16,057 DEBUG  [org.apache.sshd.server.channel.ChannelSession] [NioProcessor-3] 192: Received SSH_MSG_CHANNEL_REQUEST on channel 0
08-09 01:16:16,057 DEBUG  [org.apache.sshd.server.channel.ChannelSession] [NioProcessor-3] 194: Received channel request: pty-req
08-09 01:16:16,058 WARN   [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 287: AbstractSession:Exception caught 
08-09 01:16:16,058 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 288: AbstractSession:Exception caughtjava.lang.NullPointerException
08-09 01:16:16,058 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 335: Closing session
08-09 01:16:16,058 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 342: Closing channel 0
08-09 01:16:16,058 DEBUG  [org.apache.sshd.server.channel.ChannelSession] [NioProcessor-3] 85: Closing channel 0 immediately
08-09 01:16:16,058 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 349: Closing IoSession
08-09 01:16:16,059 DEBUG  [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 315: IoSession closed
08-09 01:16:16,059 INFO   [org.apache.sshd.server.session.ServerSession] [NioProcessor-3] 320: Session dingxueqian,127.0.0.1@/192.168.186.152:56913 closed

然后最后发现是ssh7.5升级后 发送给服务端改变窗口大小的参数带null,然后修改源码

for (int i = 0; i < modes.length && modes[i] != 0;) {
            PtyMode mode = PtyMode.fromInt(modes[i++]);
            int val = ((modes[i++] << 24) & 0xff000000)
                    | ((modes[i++] << 16) & 0x00ff0000)
                    | ((modes[i++] << 8) & 0x0000ff00)
                    | ((modes[i++]) & 0x000000ff);
            //兼容客户端ssh7.3以上(修改位置,增加空值判断)
            if (mode == null) {
                continue;
            }
            getEnvironment().getPtyModes().put(mode, val);
        }

然后问题解决

转载于:https://my.oschina.net/qianyenum/blog/1506383

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值