Comments (8)
from dropbear.
$git config --system --get core.sshcommand
dbclient -v -y -o UseSyslog 2> /var/log/dbclient
$git clone [email protected]:openwrt/packages.git
Cloning into 'packages'...
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
I tried adding ipv6 in kernel. I still get the same "Protocol not available" in the debug log. You may be right, but - just to make sure it's not ipv6 - what else do I need to eliminate that error?
# zcat /proc/config.gz | grep -i ipv6
CONFIG_IPV6=y
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_IPV6_VTI is not set
# CONFIG_IPV6_SIT is not set
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_IPV6_GRE is not set
CONFIG_IPV6_FOU=y
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_IPV6_MROUTE is not set
# CONFIG_IPV6_SEG6_LWTUNNEL is not set
# CONFIG_IPV6_SEG6_HMAC is not set
# CONFIG_IPV6_RPL_LWTUNNEL is not set
from dropbear.
What do you get if you just run dbclient [email protected]
?
I get
Hi mkj! You've successfully authenticated, but GitHub does not provide shell access.
from dropbear.
dbclient: Connection to [email protected]:22 exited: Remote closed the connection
dbclient -v [email protected]
TRACE (23209) 0.000000: host is: [email protected]
TRACE (23209) 0.000195: loadidentityfile /home/marius95/.ssh/id_dropbear
TRACE (23209) 0.000247: enter buf_get_ed25519_priv_key
TRACE (23209) 0.000260: leave buf_get_ed25519_priv_key: success
TRACE (23209) 0.000280: user='git' host='github.com' port='22' bind_address='(null)' bind_port='(null)'
TRACE (23209) 0.012244: enter session_init
TRACE (23209) 0.012349: update_channel_prio
TRACE (23209) 0.012361: leave update_channel_prio: no socket
TRACE (23209) 0.012402: setnonblocking: 3
TRACE (23209) 0.012417: leave setnonblocking
TRACE (23209) 0.012428: setnonblocking: 4
TRACE (23209) 0.012519: leave setnonblocking
TRACE (23209) 0.012608: leave session_init
TRACE (23209) 0.012633: proxy command PID='0'
TRACE (23209) 0.012646: kexinitialise()
TRACE (23209) 0.012664: algolist add 225 'curve25519-sha256,[email protected],ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1,[email protected],ext-info-c'
TRACE (23209) 0.012683: algolist add 100 'ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-256,ssh-rsa,ssh-dss'
TRACE (23209) 0.012697: algolist add 97 '[email protected],[email protected],[email protected],aes128-ctr,aes256-ctr'
TRACE (23209) 0.012711: algolist add 97 '[email protected],[email protected],[email protected],aes128-ctr,aes256-ctr'
TRACE (23209) 0.012724: algolist add 23 'hmac-sha1,hmac-sha2-256'
TRACE (23209) 0.012735: algolist add 23 'hmac-sha1,hmac-sha2-256'
TRACE (23209) 0.012747: algolist add 26 '[email protected],zlib,none'
TRACE (23209) 0.012758: algolist add 26 '[email protected],zlib,none'
TRACE (23209) 0.012794: send_msg_kexdh_init()
TRACE (23209) 0.021541: DATAALLOWED=0
TRACE (23209) 0.021670: -> KEXINIT
TRACE (23209) 0.021730: setnonblocking: 8
TRACE (23209) 0.021745: leave setnonblocking
TRACE (23209) 0.060835: maybe_empty_reply_queue - no data allowed
TRACE (23209) 0.060942: handling github.com port 22 socket 8
TRACE (23209) 0.060970: update_channel_prio
TRACE (23209) 0.060982: update_channel_prio: not any
TRACE (23209) 0.060992: Dropbear priority transitioning 10 -> 11
TRACE (23209) 0.061017: Couldn't set IPV6_TCLASS (Protocol not available)
TRACE (23209) 0.061040: leave handle_connect_fds - success
TRACE (23209) 0.061198: empty queue dequeing
TRACE (23209) 0.265833: enter ident_readln
TRACE (23209) 0.266418: leave ident_readln: return 24
TRACE (23209) 0.267674: remoteident: SSH-2.0-babeld-e37038b1
TRACE (23209) 0.267782: maybe_empty_reply_queue - no data allowed
TRACE (23209) 0.267857: process_packet: packet type = 20, len 808
TRACE (23209) 0.267873: got expected packet 20 during kexinit
TRACE (23209) 0.267884: <- KEXINIT
TRACE (23209) 0.267894: enter recv_msg_kexinit
TRACE (23209) 0.268166: buf_match_algo: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256
TRACE (23209) 0.268185: kexguess2 0
TRACE (23209) 0.268195: kex algo curve25519-sha256
TRACE (23209) 0.268206: buf_match_algo: ssh-ed25519,ecdsa-sha2-nistp256,rsa-sha2-512,rsa-sha2-256,ssh-rsa
TRACE (23209) 0.268218: signature algo ssh-ed25519
TRACE (23209) 0.268228: buf_match_algo: [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc
TRACE (23209) 0.268242: enc c2s is [email protected]
TRACE (23209) 0.268253: buf_match_algo: [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc
TRACE (23209) 0.268267: enc s2c is [email protected]
TRACE (23209) 0.268277: buf_match_algo: [email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected],hmac-sha1
TRACE (23209) 0.268291: hash c2s is <implicit>
TRACE (23209) 0.268302: buf_match_algo: [email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected],hmac-sha1
TRACE (23209) 0.268315: hash s2c is <implicit>
TRACE (23209) 0.268325: buf_match_algo: none
TRACE (23209) 0.268336: hash c2s is none
TRACE (23209) 0.268346: buf_match_algo: none
TRACE (23209) 0.268356: hash s2c is none
TRACE (23209) 0.268366: our_first_follows_matches 1
TRACE (23209) 0.268377: leave recv_msg_kexinit
TRACE (23209) 0.268387: maybe_empty_reply_queue - no data allowed
TRACE (23209) 0.268398: leave cli_sessionloop: done with KEXINIT_RCVD
TRACE (23209) 0.268419: process_packet: packet type = 31, len 184
TRACE (23209) 0.268431: got expected packet 31 during kexinit
TRACE (23209) 0.268441: enter recv_msg_kexdh_reply
TRACE (23209) 0.268451: keytype is 5
TRACE (23209) 0.268630: algo doesn't match
TRACE (23209) 0.268682: checkpubkey: base64_decode success
TRACE (23209) 0.268700: good matching key
TRACE (23209) 0.268723: enter buf_get_ed25519_pub_key
TRACE (23209) 0.268735: leave buf_get_ed25519_pub_key: success
TRACE (23209) 0.276545: enter buf_put_ed25519_pub_key
TRACE (23209) 0.276656: leave buf_put_ed25519_pub_key
TRACE (23209) 0.276743: enter buf_verify
TRACE (23209) 0.276756: enter buf_ed25519_verify
TRACE (23209) 0.303832: leave buf_ed25519_verify: success!
TRACE (23209) 0.303890: leave buf_ed25519_verify: ret 0
TRACE (23209) 0.303906: enter send_msg_newkeys
TRACE (23209) 0.303929: enter gen_new_keys
TRACE (23209) 0.303999: leave gen_new_keys
TRACE (23209) 0.304011: switch_keys trans
TRACE (23209) 0.304231: leave send_msg_newkeys
TRACE (23209) 0.304256: leave recv_msg_kexdh_init
TRACE (23209) 0.304269: enter send_msg_service_request: servicename='ssh-userauth'
TRACE (23209) 0.304314: leave send_msg_service_request
TRACE (23209) 0.304326: enter cli_auth_getmethods
TRACE (23209) 0.304344: leave cli_auth_getmethods
TRACE (23209) 0.304354: leave cli_sessionloop: sent userauth methods req
TRACE (23209) 0.304486: empty queue dequeing
TRACE (23209) 0.304699: process_packet: packet type = 21, len 6
TRACE (23209) 0.304725: got expected packet 21 during kexinit
TRACE (23209) 0.304736: enter recv_msg_newkeys
TRACE (23209) 0.304746: switch_keys recv
TRACE (23209) 0.304969: switch_keys done
TRACE (23209) 0.305051: kexinitialise()
TRACE (23209) 0.305067: leave recv_msg_newkeys
TRACE (23209) 0.305079: leave cli_sessionloop: waiting, req_sent
TRACE (23209) 0.423125: process_packet: packet type = 7, len 570
TRACE (23209) 0.423253: enter recv_msg_ext_info
TRACE (23209) 0.423264: last 21, donefirst 1, donescond 0
TRACE (23209) 0.423276: received SSH_MSG_EXT_INFO with 1 items
TRACE (23209) 0.423288: extension 0 name 'server-sig-algs'
TRACE (23209) 0.423303: leave recv_msg_ext_info
TRACE (23209) 0.423315: leave cli_sessionloop: waiting, req_sent
TRACE (23209) 0.423347: process_packet: packet type = 6, len 22
TRACE (23209) 0.423361: leave cli_sessionloop: waiting, req_sent
TRACE (23209) 0.423390: process_packet: packet type = 51, len 20
TRACE (23209) 0.423473: <- MSG_USERAUTH_FAILURE
TRACE (23209) 0.423492: enter recv_msg_userauth_failure
TRACE (23209) 0.423502: Methods (len 9): 'publickey'
TRACE (23209) 0.423513: auth method 'publickey'
TRACE (23209) 0.423526: leave recv_msg_userauth_failure
TRACE (23209) 0.423537: enter cli_auth_try
TRACE (23209) 0.423547: enter cli_auth_pubkey
TRACE (23209) 0.423566: server-sig-algs allows ssh-ed25519
TRACE (23209) 0.423576: enter send_msg_userauth_pubkey sigtype 5
TRACE (23209) 0.423592: enter buf_put_ed25519_pub_key
TRACE (23209) 0.423602: leave buf_put_ed25519_pub_key
TRACE (23209) 0.423626: leave send_msg_userauth_pubkey
TRACE (23209) 0.423637: leave cli_auth_pubkey-success
TRACE (23209) 0.423646: cli_auth_try lastauthtype 2
TRACE (23209) 0.423656: leave cli_auth_try success
TRACE (23209) 0.423665: leave cli_sessionloop: cli_auth_try
TRACE (23209) 0.423715: empty queue dequeing
TRACE (23209) 0.553169: process_packet: packet type = 60, len 76
TRACE (23209) 0.553316: enter recv_msg_userauth_pk_ok
TRACE (23209) 0.553332: recv_msg_userauth_pk_ok: type 5
TRACE (23209) 0.553349: enter buf_put_ed25519_pub_key
TRACE (23209) 0.553360: leave buf_put_ed25519_pub_key
TRACE (23209) 0.553371: matching key
TRACE (23209) 0.554403: enter send_msg_userauth_pubkey sigtype 5
TRACE (23209) 0.554462: enter buf_put_ed25519_pub_key
TRACE (23209) 0.554474: leave buf_put_ed25519_pub_key
TRACE (23209) 0.554486: realsign
TRACE (23209) 0.554498: buf_put_sign type 5 ssh-ed25519
TRACE (23209) 0.554509: enter buf_put_ed25519_sign
TRACE (23209) 0.568104: leave buf_put_ed25519_sign
TRACE (23209) 0.568156: leave send_msg_userauth_pubkey
TRACE (23209) 0.568167: leave recv_msg_userauth_pk_ok
TRACE (23209) 0.568178: leave cli_sessionloop: waiting, req_sent
TRACE (23209) 0.568294: empty queue dequeing
TRACE (23209) 0.690657: process_packet: packet type = 52, len 6
TRACE (23209) 0.690794: received msg_userauth_success
TRACE (23209) 0.690815: enter cli_send_chansess_request
TRACE (23209) 0.690826: enter send_msg_channel_open_init()
TRACE (23209) 0.690837: enter newchannel
TRACE (23209) 0.690849: leave newchannel
TRACE (23209) 0.690859: setnonblocking: 0
TRACE (23209) 0.690871: leave setnonblocking
TRACE (23209) 0.690882: leave send_msg_channel_open_init()
TRACE (23209) 0.690907: leave cli_send_chansess_request
TRACE (23209) 0.691422: enter setup_localtcp
TRACE (23209) 0.691439: leave setup_localtcp
TRACE (23209) 0.691449: enter setup_remotetcp
TRACE (23209) 0.691458: leave setup_remotetcp
TRACE (23209) 0.691468: leave cli_sessionloop: running
TRACE (23209) 0.691567: empty queue dequeing
TRACE (23209) 0.692396: process_packet: packet type = 80, len 478
TRACE (23209) 0.692502: recv_msg_global_request_cli
TRACE (23209) 0.692590: empty queue dequeing
TRACE (23209) 0.810535: process_packet: packet type = 91, len 22
TRACE (23209) 0.810665: enter recv_msg_channel_open_confirmation
TRACE (23209) 0.810678: new chan remote 43 local 0
TRACE (23209) 0.810690: setnonblocking: 1
TRACE (23209) 0.810702: leave setnonblocking
TRACE (23209) 0.810712: setnonblocking: 0
TRACE (23209) 0.810721: leave setnonblocking
TRACE (23209) 0.810731: setnonblocking: 2
TRACE (23209) 0.810741: leave setnonblocking
TRACE (23209) 0.810751: enter send_chansess_pty_req
TRACE (23209) 0.810783: enter put_termcodes
TRACE (23209) 0.810803: leave put_termcodes
TRACE (23209) 0.811416: leave send_chansess_pty_req
TRACE (23209) 0.811434: enter send_chansess_shell_req
TRACE (23209) 0.811452: leave send_chansess_shell_req
TRACE (23209) 0.811463: enter cli_pty_setup
TRACE (23209) 0.811489: leave cli_tty_setup
TRACE (23209) 0.811499: update_channel_prio
TRACE (23209) 0.811508: update_channel_prio: lowdelay 0
TRACE (23209) 0.811518: leave recv_msg_channel_open_confirmation
TRACE (23209) 0.813176: empty queue dequeing
TRACE (23209) 0.813338: process_packet: packet type = 96, len 10
TRACE (23209) 0.813353: enter recv_msg_channel_eof
TRACE (23209) 0.813363: CLOSE some fd 1
TRACE (23209) 0.813375: leave recv_msg_channel_eof
TRACE (23209) 0.813499: Exited, cleaning up: Remote closed the connection
TRACE (23209) 0.813517: enter session_cleanup
TRACE (23209) 0.813526: enter chancleanup
TRACE (23209) 0.813535: channel 0 closing
TRACE (23209) 0.813544: enter remove_channel
TRACE (23209) 0.813553: channel index is 0
TRACE (23209) 0.813562: CLOSE writefd -1
TRACE (23209) 0.813571: CLOSE readfd 0
TRACE (23209) 0.813580: CLOSE errfd 2
This is how it appears on screen. The console is unusable after this, but that's anonther issue.
It's not a key issue. The converted key works fine with openssh.
from dropbear.
I don't see why it wouldn't work, I've put in a GitHub ticket #1407998 (I can't CC you)
from dropbear.
If it helps, dropbear configure command was this:
./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --docdir=/usr/share/doc/dropbear-2020.81-r3 --htmldir=/usr/share/doc/dropbear-2020.81-r3/html --libdir=/usr/lib64 --disable-harden --disable-bundled-libtom --enable-zlib --disable-pam --enable-openpty --enable-shadow --disable-static --enable-syslog
and config file was this:
#ifndef DROPBEAR_DEFAULT_OPTIONS_H_
#define DROPBEAR_DEFAULT_OPTIONS_H_
#define DROPBEAR_DEFPORT "22"
#define DROPBEAR_DEFADDRESS ""
#define DSS_PRIV_FILENAME "/etc/dropbear/dropbear_dss_host_key"
#define RSA_PRIV_FILENAME "/etc/dropbear/dropbear_rsa_host_key"
#define ECDSA_PRIV_FILENAME "/etc/dropbear/dropbear_ecdsa_host_key"
#define ED25519_PRIV_FILENAME "/etc/dropbear/dropbear_ed25519_host_key"
#define NON_INETD_MODE 1
#define INETD_MODE 1
#define DEBUG_TRACE 1
#define DROPBEAR_SMALL_CODE 0
#define DROPBEAR_X11FWD 1
#define DROPBEAR_CLI_LOCALTCPFWD 1
#define DROPBEAR_CLI_REMOTETCPFWD 1
#define DROPBEAR_SVR_LOCALTCPFWD 1
#define DROPBEAR_SVR_REMOTETCPFWD 1
#define DROPBEAR_SVR_AGENTFWD 0
#define DROPBEAR_CLI_AGENTFWD 0
#define DROPBEAR_CLI_PROXYCMD 1
#define DROPBEAR_CLI_NETCAT 1
#define DROPBEAR_USER_ALGO_LIST 1
#define DROPBEAR_AES128 1
#define DROPBEAR_AES256 1
#define DROPBEAR_3DES 0
#define DROPBEAR_TWOFISH256 0
#define DROPBEAR_TWOFISH128 0
#define DROPBEAR_CHACHA20POLY1305 1
#define DROPBEAR_ENABLE_CTR_MODE 1
#define DROPBEAR_ENABLE_CBC_MODE 0
#define DROPBEAR_ENABLE_GCM_MODE 1
#define DROPBEAR_SHA1_HMAC 1
#define DROPBEAR_SHA2_256_HMAC 1
#define DROPBEAR_SHA1_96_HMAC 0
#define DROPBEAR_RSA 1
#define DROPBEAR_DSS 1
#define DROPBEAR_ECDSA 1
#define DROPBEAR_ED25519 1
#define DROPBEAR_DEFAULT_RSA_SIZE 2048
#define DROPBEAR_DELAY_HOSTKEY 1
#define DROPBEAR_DH_GROUP14_SHA1 1
#define DROPBEAR_DH_GROUP14_SHA256 1
#define DROPBEAR_DH_GROUP16 0
#define DROPBEAR_CURVE25519 1
#define DROPBEAR_ECDH 1
#define DROPBEAR_DH_GROUP1 1
#define DROPBEAR_DH_GROUP1_CLIENTONLY 1
#define DROPBEAR_ZLIB_WINDOW_BITS 15
#define DO_HOST_LOOKUP 0
#define DO_MOTD 1
#define MOTD_FILENAME "/etc/motd"
#define DROPBEAR_SVR_PASSWORD_AUTH 1
#define DROPBEAR_SVR_PAM_AUTH 0
#define DROPBEAR_SVR_PUBKEY_AUTH 1
#define DROPBEAR_SVR_PUBKEY_OPTIONS 1
#define DROPBEAR_SVR_MULTIUSER 1
#define DROPBEAR_CLI_PASSWORD_AUTH 1
#define DROPBEAR_CLI_PUBKEY_AUTH 1
#define DROPBEAR_DEFAULT_CLI_AUTHKEY ".ssh/id_dropbear"
#define DROPBEAR_USE_PASSWORD_ENV 1
#define DROPBEAR_CLI_ASKPASS_HELPER 0
#define DROPBEAR_CLI_IMMEDIATE_AUTH 0
#define DROPBEAR_USE_PRNGD 0
#define DROPBEAR_PRNGD_SOCKET "/var/run/dropbear-rng"
#define MAX_UNAUTH_PER_IP 2
#define MAX_UNAUTH_CLIENTS 5
#define MAX_AUTH_TRIES 3
#define DROPBEAR_PIDFILE "/var/run/dropbear.pid"
#define XAUTH_COMMAND "/usr/bin/xauth -q"
#define DROPBEAR_SFTPSERVER 1
#define SFTPSERVER_PATH "/usr/lib/misc/sftp-server"
#define DROPBEAR_PATH_SSH_PROGRAM "/usr/bin/dbclient"
#define LOG_COMMANDS 0
#define DEFAULT_RECV_WINDOW 24576
#define RECV_MAX_PAYLOAD_LEN 32768
#define TRANS_MAX_PAYLOAD_LEN 16384
#define DEFAULT_KEEPALIVE 0
#define DEFAULT_KEEPALIVE_LIMIT 3
#define DEFAULT_IDLE_TIMEOUT 0
#define DEFAULT_PATH "/usr/bin:/bin"
#endif /* DROPBEAR_DEFAULT_OPTIONS_H_ */
from dropbear.
Hi. Sorry for adding noise! Is there any news from the ticket you sent?
I'm on Alpine with the dbclient
shipped by the distro, and I think I've got the same problem with Github. My machine has both IPv6 and IPv4 though.
I tried ssh to other Git services (Gitea, Gitlab), they all work fine with the same key.
Here is the configuration from the Alpine build:
./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --infodir=/usr/share/info --localstatedir=/var --disable-wtmp --disable-lastlog
I will try to build a debug binary and get a trace in the next few days.
from dropbear.
I'll close this, if anyone has further information from Github support please reopen/reply.
from dropbear.
Related Issues (20)
- dropbear 22.83 patch error in lede/optnwrt HOT 1
- Minor clarification for DEBUG_TRACE HOT 1
- dbclient can't connect to embedded dropbear server HOT 4
- sshkey file layout HOT 1
- dropbear for android error ` fstatat64(AT_FDCWD, "//.ssh` HOT 1
- Can I Replace LibTomCrypt with OpenSSL? HOT 3
- Ability to configure the `authorized_keys` file HOT 2
- Error if I use scp from same network with python paramiko HOT 2
- cannot login just with private key HOT 2
- Long time to authorize HOT 15
- Make dropbearkey as ssh-keygen HOT 1
- The terminal process cannot be closed correctly HOT 5
- release request (terrapin) HOT 3
- How do you change the port number for SSH server? Where is the dropbear configuration file located? HOT 2
- Dropbear limited scalability HOT 1
- how to set the unlock time for user using dropbear? HOT 2
- -static-pie: Aiee, segfault! You should probably report this as a bug to the developer HOT 3
- How limit maxsession per user ? HOT 1
- Invalid signature key type allows to trigger an assertion via remote HOT 4
- SSH command execution will overwrite stderr HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dropbear.