Problem logging in over GRE/IPSec tunnel?

Paul Suh plsuh at goodeast.com
Mon Oct 20 13:56:14 EST 2014


Hello, 

First time posting here, but I’ve been using OpenBSD for since 2.7 or so. I hope this is the right place to ask. 

Anyway, I’m running into a puzzler. 

I have an OpenBSD 5.5 system in a data center and a second OpenBSD 5.5 router at my apartment. I set up a GRE over IPSec tunnel from my apartment’s private subnet to the data center internal subnet as per the instructions on the gre(4) man page. I can connect to other systems inside the private subnet at the data center via SSH with no problem. 

If I connect via SSH to an external address of the router (which does not pass through the tunnel), everything functions as expected. I double-checked that this connection does not go through the tunnel by sniffing traffic on enc0. 

If I connect via SSH to the internal address of the router (through the tunnel, confirmed by tcpdump on enc0), the connection fails with the error message on the client system: 

> Read from socket failed: Connection reset by peer

When I use -vvv on the connection attempt, the log looks like: 

> Paul-Suh-Core-i5:~ plsuh$ ssh -vvv locadmin at 192.168.140.251
> OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
> debug1: Reading configuration data /etc/ssh_config
> debug1: /etc/ssh_config line 20: Applying options for *
> debug1: /etc/ssh_config line 53: Applying options for *
> debug2: ssh_connect: needpriv 0
> debug1: Connecting to 192.168.140.251 [192.168.140.251] port 22.
> debug1: Connection established.
> debug3: Incorrect RSA1 identifier
> debug3: Could not load "/Users/plsuh/.ssh/id_rsa" as a RSA1 public key
> debug1: identity file /Users/plsuh/.ssh/id_rsa type 1
> debug1: identity file /Users/plsuh/.ssh/id_rsa-cert type -1
> debug3: Incorrect RSA1 identifier
> debug3: Could not load "/Users/plsuh/.ssh/id_dsa" as a RSA1 public key
> debug1: identity file /Users/plsuh/.ssh/id_dsa type 2
> debug1: identity file /Users/plsuh/.ssh/id_dsa-cert type -1
> debug1: Enabling compatibility mode for protocol 2.0
> debug1: Local version string SSH-2.0-OpenSSH_6.2
> debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
> debug1: match: OpenSSH_6.6.1 pat OpenSSH*
> debug2: fd 3 setting O_NONBLOCK
> debug3: load_hostkeys: loading entries for host "192.168.140.251" from file "/Users/plsuh/.ssh/known_hosts"
> debug2: key_type_from_name: unknown key type 'ecdsa-sha2-nistp256'
> debug3: key_read: missing keytype
> debug3: load_hostkeys: loaded 0 keys
> debug1: SSH2_MSG_KEXINIT sent
> Read from socket failed: Connection reset by peer
> Paul-Suh-Core-i5:~ plsuh$ ssh -vvv locadmin at 192.168.140.1

On the server, I get this line in /var/log/authlog:

> Oct 19 22:42:17 ravelin sshd[5880]: fatal: Read from socket failed: Connection reset by peer [preauth]


I tried moving aside the ~/.ssh/known_hosts file, but the behavior is the same. In the debug trace the line "debug2: key_type_from_name: unknown key type 'ecdsa-sha2-nistp256'“ is missing, but other than that nothing changed. 

I don’t understand how connecting to the same system, to the same sshd instance -- one way works, the other doesn’t. Client is OS X 10.9.5, OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011. 

Any ideas? 


—Paul


FYI - the debug trace from a successful connection 

> Paul-Suh-Core-i5:~ plsuh$ ssh -vvv -p 2022 locadmin at ravelin-ext.goodeast.com
> OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
> debug1: Reading configuration data /etc/ssh_config
> debug1: /etc/ssh_config line 20: Applying options for *
> debug1: /etc/ssh_config line 53: Applying options for *
> debug2: ssh_connect: needpriv 0
> debug1: Connecting to ravelin-ext.goodeast.com [209.190.244.103] port 2022.
> debug1: Connection established.
> debug3: Incorrect RSA1 identifier
> debug3: Could not load "/Users/plsuh/.ssh/id_rsa" as a RSA1 public key
> debug1: identity file /Users/plsuh/.ssh/id_rsa type 1
> debug1: identity file /Users/plsuh/.ssh/id_rsa-cert type -1
> debug3: Incorrect RSA1 identifier
> debug3: Could not load "/Users/plsuh/.ssh/id_dsa" as a RSA1 public key
> debug1: identity file /Users/plsuh/.ssh/id_dsa type 2
> debug1: identity file /Users/plsuh/.ssh/id_dsa-cert type -1
> debug1: Enabling compatibility mode for protocol 2.0
> debug1: Local version string SSH-2.0-OpenSSH_6.2
> debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
> debug1: match: OpenSSH_6.6.1 pat OpenSSH*
> debug2: fd 3 setting O_NONBLOCK
> debug3: put_host_port: [ravelin-ext.goodeast.com]:2022
> debug3: load_hostkeys: loading entries for host "[ravelin-ext.goodeast.com]:2022" from file "/Users/plsuh/.ssh/known_hosts"
> debug3: load_hostkeys: found key type RSA in file /Users/plsuh/.ssh/known_hosts:251
> debug3: load_hostkeys: loaded 1 keys
> debug3: order_hostkeyalgs: prefer hostkeyalgs: ssh-rsa-cert-v01 at openssh.com,ssh-rsa-cert-v00 at openssh.com,ssh-rsa
> debug1: SSH2_MSG_KEXINIT sent
> debug1: SSH2_MSG_KEXINIT received
> 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-cert-v01 at openssh.com,ssh-rsa-cert-v00 at openssh.com,ssh-rsa,ssh-dss-cert-v01 at openssh.com,ssh-dss-cert-v00 at openssh.com,ssh-dss
> debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm at openssh.com,aes256-gcm at openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc at lysator.liu.se
> debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm at openssh.com,aes256-gcm at openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc at lysator.liu.se
> debug2: kex_parse_kexinit: hmac-md5-etm at openssh.com,hmac-sha1-etm at openssh.com,umac-64-etm at openssh.com,umac-128-etm at openssh.com,hmac-sha2-256-etm at openssh.com,hmac-sha2-512-etm at openssh.com,hmac-ripemd160-etm at openssh.com,hmac-sha1-96-etm at openssh.com,hmac-md5-96-etm at openssh.com,hmac-md5,hmac-sha1,umac-64 at openssh.com,umac-128 at openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160 at openssh.com,hmac-sha1-96,hmac-md5-96
> debug2: kex_parse_kexinit: hmac-md5-etm at openssh.com,hmac-sha1-etm at openssh.com,umac-64-etm at openssh.com,umac-128-etm at openssh.com,hmac-sha2-256-etm at openssh.com,hmac-sha2-512-etm at openssh.com,hmac-ripemd160-etm at openssh.com,hmac-sha1-96-etm at openssh.com,hmac-md5-96-etm at openssh.com,hmac-md5,hmac-sha1,umac-64 at openssh.com,umac-128 at openssh.com,hmac-sha2-256,hmac-sha2-512,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: curve25519-sha256 at libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,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,ecdsa-sha2-nistp256,ssh-ed25519
> debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm at openssh.com,aes256-gcm at openssh.com,chacha20-poly1305 at openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc at lysator.liu.se
> debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm at openssh.com,aes256-gcm at openssh.com,chacha20-poly1305 at openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc at lysator.liu.se
> debug2: kex_parse_kexinit: hmac-md5-etm at openssh.com,hmac-sha1-etm at openssh.com,umac-64-etm at openssh.com,umac-128-etm at openssh.com,hmac-sha2-256-etm at openssh.com,hmac-sha2-512-etm at openssh.com,hmac-ripemd160-etm at openssh.com,hmac-sha1-96-etm at openssh.com,hmac-md5-96-etm at openssh.com,hmac-md5,hmac-sha1,umac-64 at openssh.com,umac-128 at openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160 at openssh.com,hmac-sha1-96,hmac-md5-96
> debug2: kex_parse_kexinit: hmac-md5-etm at openssh.com,hmac-sha1-etm at openssh.com,umac-64-etm at openssh.com,umac-128-etm at openssh.com,hmac-sha2-256-etm at openssh.com,hmac-sha2-512-etm at openssh.com,hmac-ripemd160-etm at openssh.com,hmac-sha1-96-etm at openssh.com,hmac-md5-96-etm at openssh.com,hmac-md5,hmac-sha1,umac-64 at openssh.com,umac-128 at openssh.com,hmac-sha2-256,hmac-sha2-512,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_setup: found hmac-md5-etm at openssh.com
> debug1: kex: server->client aes128-ctr hmac-md5-etm at openssh.com none
> debug2: mac_setup: found hmac-md5-etm at openssh.com
> debug1: kex: client->server aes128-ctr hmac-md5-etm at openssh.com 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: 129/256
> debug2: bits set: 520/1024
> debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
> debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
> debug1: Server host key: RSA 97:df:ac:ab:c2:05:af:01:68:61:32:65:18:5a:f8:81
> debug3: put_host_port: [209.190.244.103]:2022
> debug3: put_host_port: [ravelin-ext.goodeast.com]:2022
> debug3: load_hostkeys: loading entries for host "[ravelin-ext.goodeast.com]:2022" from file "/Users/plsuh/.ssh/known_hosts"
> debug3: load_hostkeys: found key type RSA in file /Users/plsuh/.ssh/known_hosts:251
> debug3: load_hostkeys: loaded 1 keys
> debug3: load_hostkeys: loading entries for host "[209.190.244.103]:2022" from file "/Users/plsuh/.ssh/known_hosts"
> debug3: load_hostkeys: found key type RSA in file /Users/plsuh/.ssh/known_hosts:250
> debug3: load_hostkeys: loaded 1 keys
> debug1: Host '[ravelin-ext.goodeast.com]:2022' is known and matches the RSA host key.
> debug1: Found key in /Users/plsuh/.ssh/known_hosts:251
> debug2: bits set: 498/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: Roaming not allowed by server
> debug1: SSH2_MSG_SERVICE_REQUEST sent
> debug2: service_accept: ssh-userauth
> debug1: SSH2_MSG_SERVICE_ACCEPT received
> debug2: key: /Users/plsuh/.ssh/id_rsa (0x7fe2b940b6e0),
> debug2: key: /Users/plsuh/.ssh/id_dsa (0x7fe2b940bde0),
> debug1: Authentications that can continue: publickey,password,keyboard-interactive
> debug3: start over, passed a different list publickey,password,keyboard-interactive
> debug3: preferred 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 RSA public key: /Users/plsuh/.ssh/id_rsa
> debug3: send_pubkey_test
> debug2: we sent a publickey packet, wait for reply
> debug1: Server accepts key: pkalg ssh-rsa blen 533
> debug2: input_userauth_pk_ok: fp d9:b9:38:41:b2:bd:ec:6d:15:4b:36:3a:12:4b:57:12
> debug3: sign_and_send_pubkey: RSA d9:b9:38:41:b2:bd:ec:6d:15:4b:36:3a:12:4b:57:12
> debug1: Authentication succeeded (publickey).
> Authenticated to ravelin-ext.goodeast.com ([209.190.244.103]:2022).
> debug1: channel 0: new [client-session]
> debug3: ssh_session2_open: channel_new: 0
> debug2: channel 0: send open
> debug1: Requesting no-more-sessions at openssh.com
> debug1: Entering interactive session.
> debug2: callback start
> debug2: fd 3 setting TCP_NODELAY
> debug3: packet_set_tos: set IP_TOS 0x10
> debug2: client_session2_setup: id 0
> debug2: channel 0: request pty-req confirm 1
> debug1: Sending environment.
> debug3: Ignored env TERM_PROGRAM
> debug3: Ignored env SHELL
> debug3: Ignored env TERM
> debug3: Ignored env TMPDIR
> debug3: Ignored env Apple_PubSub_Socket_Render
> debug3: Ignored env TERM_PROGRAM_VERSION
> debug3: Ignored env TERM_SESSION_ID
> debug3: Ignored env USER
> debug3: Ignored env SSH_AUTH_SOCK
> debug3: Ignored env __CF_USER_TEXT_ENCODING
> debug3: Ignored env PATH
> debug3: Ignored env __CHECKFIX1436934
> debug3: Ignored env PWD
> debug3: Ignored env DBUS_LAUNCHD_SESSION_BUS_SOCKET
> debug1: Sending env LANG = en_US.UTF-8
> debug2: channel 0: request env confirm 0
> debug3: Ignored env SHLVL
> debug3: Ignored env HOME
> debug3: Ignored env LOGNAME
> debug3: Ignored env DISPLAY
> debug3: Ignored env _
> debug2: channel 0: request shell confirm 1
> debug2: callback done
> debug2: channel 0: open confirm rwindow 0 rmax 32768
> debug2: channel_input_status_confirm: type 99 id 0
> debug2: PTY allocation request accepted on channel 0
> debug2: channel 0: rcvd adjust 2097152
> debug2: channel_input_status_confirm: type 99 id 0
> debug2: shell request accepted on channel 0
> Last login: Sun Oct 19 20:02:46 2014 from 24.231.37.237
> OpenBSD 5.5-stable (FLASHRD.MP) #1: Mon Jun  9 09:53:13 EDT 2014
> 
> Welcome to OpenBSD: The proactively secure Unix-like operating system.
> 
> Please use the sendbug(1) utility to report bugs in the system.
> Before reporting a bug, please try to reproduce it with the latest
> version of the code.  With bug reports, please try to ensure that
> enough information to reproduce the problem is enclosed, and if a
> known fix for it exists, include that as well.
> 
> $ 
> 


More information about the openssh-unix-dev mailing list