Archived Forum Post

Index of archived forum posts

Question:

SSH OpenSessionChannel

Jul 17 '16 at 18:43

I am trying to connect to an Android dropbear SSH Server. The initial connection and authentication work fine, however when I try to open a session channel the channel number is returned as -1.

    int channelNum = mSSH->OpenSessionChannel();
    if (channelNum < 0)
    {
        char buffer[2048];
        sprintf_s(buffer, 2048, "%s\nError: %s", mSSH->lastErrorText(), mSSH->channelOpenFailReason());
        LOGW(buffer);
        return;
    } 

The last error text is

    ChilkatLog:   OpenSessionChannel:
     DllDate: Jun 13 2016
     ChilkatVersion: 9.5.0.58
     UnlockPrefix: Anything for 30-day trial
     Architecture: Little Endian; 32-bit
     Language: Visual C++ 12.0 (32-bit)
     VerboseLogging: 0
     openSessionChannel:
       sshTransportOpenChannel:
         channelType: session
         clientChannel: 0
         clientInitialWindowSize: 327680
         clientMaxPacketSize: 8192
         Sent open channel request
         Unexpected message type received in response to open channel
 request.
         messageType: 51
       --sshTransportOpenChannel
       channelNum: -1
     --openSessionChannel
     retval: -1   --OpenSessionChannel
 --ChilkatLog

How do I fix this?

Thanks

Here are the lags from the connect and authenticate. All seems OK.

    Connected
ChilkatLog:
  Connect_Ssh:
    DllDate: Jun 13 2016
    ChilkatVersion: 9.5.0.58
    UnlockPrefix: Anything for 30-day trial
    Architecture: Little Endian; 32-bit
    Language: Visual C++ 12.0 (32-bit)
    VerboseLogging: 0
    connectInner:
      hostname: 192.168.6.36
      port: 22
      sshConnect:
        Established TCP/IP connection with SSH server
      --sshConnect
      sshSetupConnection:
        clientIdentifier: SSH-2.0-PuTTY_Release_0.66
        Sending client identifier...
        Done sending client identifier.
        Reading server version...
        initialDataFromSshServer: SSH-2.0-dropbear_2015.67

serverVersion: SSH-2.0-dropbear_2015.67
        KeyExchangeAlgs:
          algorithm: curve25519-sha256@libssh.org
          algorithm: ecdh-sha2-nistp521
          algorithm: ecdh-sha2-nistp384
          algorithm: ecdh-sha2-nistp256
          algorithm: diffie-hellman-group14-sha1
          algorithm: diffie-hellman-group1-sha1
          algorithm: kexguess2@matt.ucc.asn.au
        --KeyExchangeAlgs
        HostKeyAlgs:
          algorithm: ecdsa-sha2-nistp521
          algorithm: ssh-rsa
        --HostKeyAlgs
        EncCS:
          algorithm: aes128-ctr
          algorithm: aes256-ctr
          algorithm: aes128-cbc
          algorithm: aes256-cbc
          algorithm: 3des-ctr
          algorithm: 3des-cbc
        --EncCS
        EncSC:
          algorithm: aes128-ctr
          algorithm: aes256-ctr
          algorithm: aes128-cbc
          algorithm: aes256-cbc
          algorithm: 3des-ctr
          algorithm: 3des-cbc
        --EncSC
        MacCS:
          algorithm: hmac-sha2-256
          algorithm: hmac-sha2-512
          algorithm: hmac-sha1-96
          algorithm: hmac-sha1
          algorithm: hmac-md5
        --MacCS
        MacSC:
          algorithm: hmac-sha2-256
          algorithm: hmac-sha2-512
          algorithm: hmac-sha1-96
          algorithm: hmac-sha1
          algorithm: hmac-md5
        --MacSC
        CompCS:
          algorithm: none
        --CompCS
        CompSC:
          algorithm: none
        --CompSC
        ChosenIncomingEncryption: aes256-ctr
        ChosenOutgoingEncryptoin: aes256-ctr
        ChosenIncomingMac: hmac-sha2-256
        ChosenOutgoingMac: hmac-sha2-256
        ChosenIncomingCompression: none
        ChosenOutgoingCompression: none
        ChosenKexAlgorithm: diffie-hellman-group1-sha1
        ChosenHostKeyAlgorithm: ssh-rsa
        Using SHA-1 for Key Exchange Hash
        RSA host key parsed successfully.
        Sending newkeys to server...
        Expecting newkeys from server...
        SSH Key Exchange Success.
        installNewKeys:
          m_isRekey: 0
          No outgoing compression.
          No incoming compression.
          Outgoing encryption is now AES 256 CTR
          outgoingMac: SHA256
        --installNewKeys
      --sshSetupConnection
      socketOptions:
        SO_SNDBUF: 262144
        SO_RCVBUF: 4194304
        TCP_NODELAY: 1
        SO_KEEPALIVE: 0
      --socketOptions
    --connectInner
    Success.
  --Connect_Ssh
--ChilkatLog

Authenticated
ChilkatLog:
  AuthenticatePw:
    DllDate: Jun 13 2016
    ChilkatVersion: 9.5.0.58
    UnlockPrefix: Anything for 30-day trial
    Architecture: Little Endian; 32-bit
    Language: Visual C++ 12.0 (32-bit)
    VerboseLogging: 0
    SshVersion: SSH-2.0-dropbear_2015.67
    sshAuthenticatePw:
      requestUserAuthService:
        sendServiceRequest:
          svcName: ssh-userauth
          SentServiceReq: ssh-userauth
        --sendServiceRequest
        ssh-userauth service accepted.
      --requestUserAuthService
      [SSH] Received USERAUTH_BANNER
      AuthMethods: publickey,password
      passwordAuth:
        Sent login/password
        Password authentication successful.
      --passwordAuth
    --sshAuthenticatePw
    Success.
  --AuthenticatePw
--ChilkatLog

ChilkatLog:
  OpenSessionChannel:
    DllDate: Jun 13 2016
    ChilkatVersion: 9.5.0.58
    UnlockPrefix: Anything for 30-day trial
    Architecture: Little Endian; 32-bit
    Language: Visual C++ 12.0 (32-bit)
    VerboseLogging: 0
    openSessionChannel:
      sshTransportOpenChannel:
        channelType: session
        clientChannel: 0
        clientInitialWindowSize: 327680
        clientMaxPacketSize: 8192
        Sent open channel request
        Unexpected message type received in response to open channel request.
        messageType: 51
      --sshTransportOpenChannel
      channelNum: -1
    --openSessionChannel
    retval: -1
  --OpenSessionChannel
--ChilkatLog

Error:


Answer

So I found the fix for this was to authenticate using a private key. There seems to be a bug in the AuthenticatePw code, as it was saying that the authentication succeeded.


Answer

The message type 51 is a SSH2_MSG_USERAUTH_FAILURE. Check the LastErrorText's for calls leading up to the call to OpenSshChannel to see if that gives any clues.