downtime at slagheap.net
2007-Feb-08 19:17 UTC
bug(?) with OpenSSH 4.4+ and large DSA ID keys
Please pardon me if this is the wrong place, or operator error/ retardation is involved. Any help is sincerely appreciated. fatal: mm_request_receive_expect: read: rtype 12 != type 24 For some reason, three (two OpenBSD/i386 and one OpenBSD/sparc64) of my four identically-configured SSH daemons cough up the above error when I try to authenticate using a big (4096-bit) DSA key from the same OpenSSH 4.2 client. Note that I said three out of four - strangely one works, and this would ordinarily make me suspect my own incompetence, but I haven't done anything funny and all of them have default, vanilla configuration files. One of them (i386), for some unbeknownst reason, works just fine. This was working just fine before I changed to a 4096 bit key. Upgrading the server to OpenSSH 4.5 allows for fallback to password authentication to work; upgrading the client produces no change whatsoever. Other OpenSSH 4.2 and 4.3 servers I have seem not to be affected. Going back to a 2048-bit DSA key fixes it. Shell transcript follows, including debug output. The key parsing errors are especially weird, but these seem to happen with the working client and a 2048-bit DSA key, too. aurora65% ssh northstar Connection closed by 192.168.99.2 aurora66% ssh root at northstar root at northstar's password: Last login: Thu Nov 2 00:31:48 2006 OpenBSD 4.0 (GENERIC) #2: Tue Jan 16 12:33:34 PST 2007 /usr/X11R6/bin/xauth: creating new authority file /root/.Xauthority Terminal type? [xterm] # tail /var/log/authlog Feb 6 03:00:01 northstar newsyslog[18751]: logfile turned over Feb 7 14:54:26 northstar sshd[30539]: fatal: mm_request_receive_expect: read: rtype 12 != type 24 Feb 7 15:22:49 northstar sshd[10863]: fatal: mm_request_receive_expect: read: rtype 12 != type 24 Feb 7 16:34:03 northstar sshd[21238]: fatal: mm_request_receive_expect: read: rtype 12 != type 24 Feb 7 16:34:12 northstar sshd[24866]: Accepted password for root from 192.168.69.34 port 49715 ssh2 # exit aurora69% ssh -vvv northstar OpenSSH_4.2p1, OpenSSL 0.9.7l 28 Sep 2006 debug1: Reading configuration data /etc/ssh_config debug2: ssh_connect: needpriv 0 debug1: Connecting to northstar [192.168.99.2] port 22. debug1: Connection established. debug1: identity file /Users/peter/.ssh/identity type 0 debug3: Not a RSA1 key file /Users/peter/.ssh/id_rsa. debug2: key_type_from_name: unknown key type '-----BEGIN' debug3: key_read: missing keytype debug2: key_type_from_name: unknown key type 'Proc-Type:' debug3: key_read: missing keytype debug2: key_type_from_name: unknown key type 'DEK-Info:' debug3: key_read: missing keytype debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug2: key_type_from_name: unknown key type '-----END' debug3: key_read: missing keytype debug1: identity file /Users/peter/.ssh/id_rsa type 1 debug3: Not a RSA1 key file /Users/peter/.ssh/id_dsa. debug2: key_type_from_name: unknown key type '-----BEGIN' debug3: key_read: missing keytype debug2: key_type_from_name: unknown key type 'Proc-Type:' debug3: key_read: missing keytype debug2: key_type_from_name: unknown key type 'DEK-Info:' debug3: key_read: missing keytype debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug2: key_type_from_name: unknown key type '-----END' debug3: key_read: missing keytype debug1: identity file /Users/peter/.ssh/id_dsa type 2 debug1: Remote protocol version 1.99, remote software version OpenSSH_4.4 debug1: match: OpenSSH_4.4 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_4.2 debug2: fd 3 setting O_NONBLOCK debug1: An invalid name was supplied Configuration file does not specify default realm debug1: An invalid name was supplied A parameter was malformed Validation error debug1: An invalid name was supplied Configuration file does not specify default realm debug1: An invalid name was supplied A parameter was malformed Validation error debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha1,diffie- hellman-group14-sha1,diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: ssh-rsa,ssh-dss debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128- cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael- cbc at lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128- cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael- cbc at lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac- ripemd160 at openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac- ripemd160 at openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: none,zlib at openssh.com,zlib debug2: kex_parse_kexinit: none,zlib at openssh.com,zlib debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: first_kex_follows 0 debug2: kex_parse_kexinit: reserved 0 debug2: kex_parse_kexinit: diffie-hellman-group-exchange- sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14- sha1,diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: ssh-rsa,ssh-dss debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128- cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael- cbc at lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128- cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael- cbc at lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac- ripemd160 at openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac- ripemd160 at openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: none,zlib at openssh.com debug2: kex_parse_kexinit: none,zlib at openssh.com debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: first_kex_follows 0 debug2: kex_parse_kexinit: reserved 0 debug2: mac_init: found hmac-md5 debug1: kex: server->client aes128-cbc hmac-md5 none debug2: mac_init: found hmac-md5 debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug2: dh_gen_key: priv key bits set: 121/256 debug2: bits set: 502/1024 debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug3: check_host_in_hostfile: filename /Users/peter/.ssh/known_hosts debug3: check_host_in_hostfile: match line 148 debug3: check_host_in_hostfile: filename /Users/peter/.ssh/known_hosts debug3: check_host_in_hostfile: match line 148 debug1: Host 'northstar' is known and matches the RSA host key. debug1: Found key in /Users/peter/.ssh/known_hosts:148 debug2: bits set: 511/1024 debug1: ssh_rsa_verify: signature correct debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug2: key: /Users/peter/.ssh/id_rsa (0x307930) debug2: key: /Users/peter/.ssh/id_dsa (0x3078a0) debug1: Authentications that can continue: publickey,password,keyboard-interactive debug3: start over, passed a different list publickey,password,keyboard-interactive debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard- interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Offering public key: /Users/peter/.ssh/id_rsa debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey,password,keyboard-interactive debug1: Offering public key: /Users/peter/.ssh/id_dsa debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply debug1: Server accepts key: pkalg ssh-dss blen 1587 debug2: input_userauth_pk_ok: fp blah:blah:blah debug3: sign_and_send_pubkey debug1: Authentications that can continue: publickey,password,keyboard-interactive debug2: we did not send a packet, disable method debug3: authmethod_lookup keyboard-interactive debug3: remaining preferred: password debug3: authmethod_is_enabled keyboard-interactive debug1: Next authentication method: keyboard-interactive debug2: userauth_kbdint debug2: we sent a keyboard-interactive packet, wait for reply Connection closed by 192.168.99.2
downtime at slagheap.net wrote:> Please pardon me if this is the wrong place, or operator error/ > retardation is involved. Any help is sincerely appreciated. > > fatal: mm_request_receive_expect: read: rtype 12 != type 24That's a symptom of the bug fixed just before the release of OpenSSH 4.5 (where the monitor and slave get out of sync). I suggest that you upgrade the (other) servers. The reason for the different behaviour on some hosts is that it's dependent on the OpenSSL library version (newer versions will refuse to process DSA keys > ~3k). This means that your big keys still won't work, but the server won't kill the connections either. Big DSA keys don't really make sense for SSH so if you want big keys I suggest you use RSA. The "unknown key type" client debug messages are normal. -- Darren Tucker (dtucker at zip.com.au) GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4 37C9 C982 80C7 8FF4 FA69 Good judgement comes with experience. Unfortunately, the experience usually comes from bad judgement.