Sshd stalls after vm -> lxd migration: /dev/ttyS0: No such file or directory

In an attempt to migrate an aging Ubuntu 14.04 based VM off a cloud provider to our own cluster, we launched a new container: lxc launch ubuntu:14.04 u14

… and proceeded to rsync -a directories /bin /etc /lib /lib64 /opt /run /sbin /srv /sys /tmp /usr /var wholesale from the VM to the container. To our surprise and delight the container rebooted fine and our ruby/sql app started.

However, when we try to ssh via keys the process appears to hangs before quitting with no info. We are unable to ssh in and would like to.

We’ve tried: apt-get purge openssh-server && apt-get install openssh-server

server (w/ ssh LogLevel DEBUG3)
tail -f /var/log/auth.log

Sep 22 23:39:23 srv_host sshd[32973]: debug3: oom_adjust_setup
Sep 22 23:39:23 srv_host sshd[32973]: Set /proc/self/oom_score_adj from 0 to -1000
Sep 22 23:39:23 srv_host sshd[32973]: debug2: fd 3 setting O_NONBLOCK
Sep 22 23:39:23 srv_host sshd[32973]: debug1: Bind to port 22 on 0.0.0.0.
Sep 22 23:39:23 srv_host sshd[32973]: Server listening on 0.0.0.0 port 22.
Sep 22 23:39:23 srv_host sshd[32973]: debug2: fd 4 setting O_NONBLOCK
Sep 22 23:39:23 srv_host sshd[32973]: debug3: sock_set_v6only: set socket 4 IPV6_V6ONLY
Sep 22 23:39:23 srv_host sshd[32973]: debug1: Bind to port 22 on ::.
Sep 22 23:39:23 srv_host sshd[32973]: Server listening on :: port 22.
Sep 22 23:39:25 srv_host sshd[32973]: debug3: fd 5 is not O_NONBLOCK
Sep 22 23:39:25 srv_host sshd[32973]: debug1: Forked child 32975.
Sep 22 23:39:25 srv_host sshd[32973]: debug3: send_rexec_state: entering fd = 8 config len 763
Sep 22 23:39:25 srv_host sshd[32973]: debug3: ssh_msg_send: type 0
Sep 22 23:39:25 srv_host sshd[32973]: debug3: send_rexec_state: done
Sep 22 23:39:25 srv_host sshd[32975]: debug3: oom_adjust_restore
Sep 22 23:39:25 srv_host sshd[32975]: Set /proc/self/oom_score_adj to 0
Sep 22 23:39:25 srv_host sshd[32975]: debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8
Sep 22 23:39:25 srv_host sshd[32975]: debug1: inetd sockets after dupping: 3, 3
Sep 22 23:39:25 srv_host sshd[32975]: Connection from client_ip port 46428 on server_ip port 22
Sep 22 23:39:25 srv_host sshd[32975]: debug1: Client protocol version 2.0; client software version OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
Sep 22 23:39:25 srv_host sshd[32975]: debug1: match: OpenSSH_8.2p1 Ubuntu-4ubuntu0.3 pat OpenSSH* compat 0x04000000
Sep 22 23:39:25 srv_host sshd[32975]: debug1: Enabling compatibility mode for protocol 2.0
Sep 22 23:39:25 srv_host sshd[32975]: debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.13
Sep 22 23:39:25 srv_host sshd[32975]: debug2: fd 3 setting O_NONBLOCK
Sep 22 23:39:25 srv_host sshd[32975]: debug2: Network child is on pid 32976
Sep 22 23:39:25 srv_host sshd[32975]: debug3: preauth child monitor started
Sep 22 23:39:25 srv_host sshd[32975]: debug3: privsep user:group 102:65534 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: permanently_set_uid: 102/65534 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: list_hostkey_types: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: SSH2_MSG_KEXINIT sent [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: SSH2_MSG_KEXINIT received [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellma
n-group14-sha1,diffie-hellman-group1-sha1 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128
-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128
-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd
160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 [preau
th]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd
160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 [preau
th]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: none,zlib@openssh.com [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: none,zlib@openssh.com [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit:  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit:  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: first_kex_follows 0  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: reserved 0  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,
diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sh
a2-nistp521,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,sk-ecdsa-sha2-ni
stp256@openssh.com,ssh-ed25519,sk-ssh-ed25519@openssh.com,rsa-sh
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh
.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh
.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit:  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit:  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: first_kex_follows 0  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: reserved 0  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,
diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sh
a2-nistp521,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,sk-ecdsa-sha2-ni
stp256@openssh.com,ssh-ed25519,sk-ssh-ed25519@openssh.com,rsa-sh
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh
.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh
.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit:  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit:  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: first_kex_follows 0  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_parse_kexinit: reserved 0  [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: kex: client->server chacha20-poly1305@openssh.com <implicit> none [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: kex: server->client chacha20-poly1305@openssh.com <implicit> none [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: expecting SSH2_MSG_KEX_ECDH_INIT [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug3: mm_key_sign entering [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug3: mm_request_send entering: type 6 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug3: mm_key_sign: waiting for MONITOR_ANS_SIGN [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug3: mm_request_receive_expect entering: type 7 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug3: mm_request_receive entering [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug3: mm_request_receive entering
Sep 22 23:39:25 srv_host sshd[32975]: debug3: monitor_read: checking request 6
Sep 22 23:39:25 srv_host sshd[32975]: debug3: mm_answer_sign
Sep 22 23:39:25 srv_host sshd[32975]: debug3: mm_answer_sign: signature 0x5<redacted>0(101)
Sep 22 23:39:25 srv_host sshd[32975]: debug3: mm_request_send entering: type 7
Sep 22 23:39:25 srv_host sshd[32975]: debug2: monitor_read: 6 used once, disabling now
Sep 22 23:39:25 srv_host sshd[32975]: debug2: kex_derive_keys [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: set_newkeys: mode 1 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: SSH2_MSG_NEWKEYS sent [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: expecting SSH2_MSG_NEWKEYS [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: SSH2_MSG_NEWKEYS received [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug2: set_newkeys: mode 0 [preauth]
Sep 22 23:39:25 srv_host sshd[32975]: debug1: KEX done [preauth]
Sep 22 23:39:26 srv_host sshd[32975]: debug1: userauth-request for user root service ssh-connection method none [preauth]
Sep 22 23:39:26 srv_host sshd[32975]: debug1: attempt 0 failures 0 [preauth]
Sep 22 23:39:26 srv_host sshd[32975]: debug3: mm_getpwnamallow entering [preauth]
Sep 22 23:39:26 srv_host sshd[32975]: debug3: mm_request_send entering: type 8 [preauth]
Sep 22 23:39:26 srv_host sshd[32975]: debug3: mm_getpwnamallow: waiting for MONITOR_ANS_PWNAM [preauth]
Sep 22 23:39:26 srv_host sshd[32975]: debug3: mm_request_receive_expect entering: type 9 [preauth]
Sep 22 23:39:26 srv_host sshd[32975]: debug3: mm_request_receive entering [preauth]
Sep 22 23:39:26 srv_host sshd[32975]: debug3: mm_request_receive entering
Sep 22 23:39:26 srv_host sshd[32975]: debug3: monitor_read: checking request 8
Sep 22 23:39:26 srv_host sshd[32975]: debug3: mm_answer_pwnamallow
Sep 22 23:39:26 srv_host sshd[32975]: debug3: Trying to reverse map address client_ip.
getty[32979]: /dev/ttyS0: No such file or directory
getty[32986]: /dev/ttyS0: No such file or directory (repeats ...)

client
ssh -vvvv root@server_ip

OpenSSH_8.2p1 Ubuntu-4ubuntu0.3, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /home/<localuser>/.ssh/config
debug3: kex names ok: [diffie-hellman-group1-sha1]
debug3: kex names ok: [diffie-hellman-group1-sha1]
debug3: kex names ok: [diffie-hellman-group1-sha1]
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname server_ip is address
debug2: ssh_connect_direct
debug1: Connecting to server_ip [server_ip] port 22.
debug1: Connection established.
debug1: identity file /home/<localuser>/.ssh/id_rsa type 0
debug1: identity file /home/<localuser>/.ssh/id_rsa-cert type -1
debug1: identity file /home/<localuser>/.ssh/id_dsa type 1
debug1: identity file /home/<localuser>/.ssh/id_dsa-cert type -1
debug1: identity file /home/<localuser>/.ssh/id_ecdsa type -1
debug1: identity file /home/<localuser>/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/<localuser>/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/<localuser>/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/<localuser>/.ssh/id_ed25519 type 3
debug1: identity file /home/<localuser>/.ssh/id_ed25519-cert type -1
debug1: identity file /home/<localuser>/.ssh/id_ed25519_sk type -1
debug1: identity file /home/<localuser>/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/<localuser>/.ssh/id_xmss type -1
debug1: identity file /home/<localuser>/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.13
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.13 pat OpenSSH_6.6.1* compat 0x04000002
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to server_ip:22 as 'root'
debug3: hostkeys_foreach: reading file "/home/<localuser>/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /home/<localuser>/.ssh/known_hosts:544
debug3: load_hostkeys: loaded 1 keys from server_ip
debug3: order_hostkeyalgs: prefer hostkeyalgs: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c
debug2: host key algorithms: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,ssh-ed25519,sk-ssh-ed25519@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com,zlib
debug2: compression stoc: none,zlib@openssh.com,zlib
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256@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: host key algorithms: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519
debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: MACs ctos: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: MACs stoc: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:<redacted>
debug3: hostkeys_foreach: reading file "/home/<localuser>/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /home/<localuser>/.ssh/known_hosts:544
debug3: load_hostkeys: loaded 1 keys from server_ip
debug1: Host 'server_ip' is known and matches the ECDSA host key.
debug1: Found key in /home/<localuser>/.ssh/known_hosts:544
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey in after 134217728 blocks
debug1: Skipping ssh-dss key /home/<localuser>/.ssh/id_dsa - not in PubkeyAcceptedKeyTypes
debug1: Will attempt key: /home/<localuser>/.ssh/id_rsa RSA SHA256:FdRKaGP+oySxrulkevcgBbJWF4w2TkLHlm2FyCnCrSg agent
debug1: Will attempt key: /home/<localuser>/.ssh/id_ed25519 ED25519 SHA256:CClj6qNEpvzx/HGVSpukxQqjsG5p9YMpdfUPYbHtO2Q agent
debug1: Will attempt key: /home/<localuser>/.ssh/id_ecdsa 
debug1: Will attempt key: /home/<localuser>/.ssh/id_ecdsa_sk 
debug1: Will attempt key: /home/<localuser>/.ssh/id_ed25519_sk 
debug1: Will attempt key: /home/<localuser>/.ssh/id_xmss 
debug2: pubkey_prepare: done
debug3: send packet: type 5
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
Connection closed by server_ip port 22

server
netstat -tulpn

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      33558/sshd      
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2200/master     
tcp6       0      0 :::80                   :::*                    LISTEN      10696/apache2   
tcp6       0      0 :::22                   :::*                    LISTEN      33558/sshd      
tcp6       0      0 :::443                  :::*                    LISTEN      10696/apache2   
udp        0      0 0.0.0.0:57928           0.0.0.0:*                           15668/snmpd     
udp   215040      0 0.0.0.0:161             0.0.0.0:*                           15668/snmpd     
udp6       0      0 ::1:161                 :::*                                15668/snmpd

Additionally, SNMPd runs for the first request and then becomes unreachable, and my suspicion is this is might be related?

Hopefully mostly an upstart config issue. Back when we were making images for 14.04, we had this file we’d dump in /etc/init/lxc-tty.conf:

start on starting tty1 or starting tty2 or starting tty3 or starting tty4 or starting tty5 or starting tty6
instance $JOB

script
    set -eu

    # Check that we're inside a container
    [ -e "/run/container_type" ] || exit 0
    [ "$(cat /run/container_type)" = "lxc" ] || exit 0

    # Load PID1's environment
    LXC_TTY=$(tr '\0' '\n' < /proc/1/environ | grep ^container_ttys= | cut -d= -f2-)

    # Check if we have any consoles setup
    if [ -z "${LXC_TTY}" ]; then
        # No TTYs setup in this container
        stop "${JOB}" >/dev/null 2>&1
        exit 0
    fi

    TTY_COUNT=$(echo ${LXC_TTY} | wc -w)
    JOB_ID="${JOB#tty}"

    if [ "${JOB_ID}" -gt "${TTY_COUNT}" ]; then
        # This console isn't available in the container
        stop "${JOB}" >/dev/null 2>&1
        exit 0
    fi

    # Allow the tty to start
    exit 0
end script

This may help a bit. Otherwise you may want to look at initctl list or maybe some of the boot logs in /var/log/ to figure out if anything is getting stuck.

If you haven’t done so already, you should also remove any reference to physical disks and the likes from /etc/fstab