ssh connection attempts fail if hw crypto support on s390x is enabled on 17.04
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Fix Released
|
Critical
|
Unassigned | ||
openssh (Ubuntu) |
Fix Released
|
Critical
|
Dimitri John Ledkov | ||
Zesty |
Invalid
|
Critical
|
Dimitri John Ledkov | ||
Artful |
Fix Released
|
Critical
|
Dimitri John Ledkov |
Bug Description
[ Impact ]
* Unable to ssh into Ubuntu, using default sshd configuration, when hw acceleration is enabled in openssl.
[ Proposed solution ]
* Cherrypick upstream fixes for:
- sandboxing code on big endian
- allowing hw accel iocls in the sandbox
short:
after investigations the following commits are needed by openssh-server version 7.4p1 that is part of 17.04:
- 5f1596e11d55539
- 9e96b41682aed79
on master branch in https:/
that belong to openssh 7.5 release notes statement: "sshd(8): Avoid sandbox errors for Linux S390 systems using an ICA crypto coprocessor."
__________
[Test case]
long:
enable z hw crypto support for openssh on an Ubuntu host (zlin42) on s390x like this:
sudo apt-get install openssl-ibmca libica-utils libica2
sudo tee -a /etc/ssl/
sudo sed -i 's/^\(openssl_conf = openssl_def.*$\)/# \1/g' /etc/ssl/
sudo sed -i '10i openssl_conf = openssl_def' /etc/ssl/
afterwards ssh login attempts fail:
$ ssh ubuntu@zlin42
ubuntu@zlin42's password:
Connection to zlin42 closed by remote host.
Connection to zlin42 closed.
the normal logs don't provide any interesting details:
mit log:
Apr 24 12:37:52 zlin42 kernel: [933567.994312] audit: type=1326 audit(149305187
Verbose:
OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /home/fheimes/
debug1: /home/fheimes/
debug1: /home/fheimes/
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 10.245.208.7 [10.245.208.7] port 22.
debug1: Connection established.
debug1: identity file /home/fheimes/
debug1: key_load_public: No such file or directory
debug1: identity file /home/fheimes/
debug1: key_load_public: No such file or directory
debug1: identity file /home/fheimes/
debug1: key_load_public: No such file or directory
debug1: identity file /home/fheimes/
debug1: key_load_public: No such file or directory
debug1: identity file /home/fheimes/
debug1: key_load_public: No such file or directory
debug1: identity file /home/fheimes/
debug1: key_load_public: No such file or directory
debug1: identity file /home/fheimes/
debug1: key_load_public: No such file or directory
debug1: identity file /home/fheimes/
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4p1 Ubuntu-10
debug1: match: OpenSSH_7.4p1 Ubuntu-10 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 10.245.208.7:22 as 'ubuntu'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: <email address hidden>
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: <email address hidden> MAC: <implicit> compression: none
debug1: kex: client->server cipher: <email address hidden> MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:
debug1: Host '10.245.208.7' is known and matches the ECDSA host key.
debug1: Found key in /home/fheimes/
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-
debug1: SSH2_MSG_
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/fheimes/
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/fheimes/
debug1: Trying private key: /home/fheimes/
debug1: Trying private key: /home/fheimes/
debug1: Next authentication method: password
ubuntu@
debug1: Authentication succeeded (password).
Authenticated to 10.245.208.7 ([10.245.
debug1: channel 0: new [client-session]
debug1: Requesting <email address hidden>
debug1: Entering interactive session.
debug1: pledge: network
debug1: channel 0: free: client-session, nchannels 1
Connection to 10.245.208.7 closed by remote host.
Connection to 10.245.208.7 closed.
Transferred: sent 2084, received 1596 bytes, in 0.0 seconds
Bytes per second: sent 10518567.4, received 8055486.4
debug1: Exit status -1
but loglevel verbose points to this issue:
"fatal: privsep_preauth: preauth child terminated by signal 31"
syslog:
Apr 26 12:39:18 s1lp15 kernel: [12676.655977] audit: type=1326 audit(149322475
authlog:
Apr 26 12:38:40 s1lp15 sshd[12323]: Connection from 10.172.194.66 port 51512 on 10.245.236.15 port 22
Apr 26 12:38:40 s1lp15 sshd[12323]: Failed publickey for ubuntu from 10.172.194.66 port 51512 ssh2: RSA SHA256:
Apr 26 12:38:43 s1lp15 sshd[12323]: Accepted password for ubuntu from 10.172.194.66 port 51512 ssh2
Apr 26 12:38:43 s1lp15 sshd[12323]: fatal: privsep_preauth: preauth child terminated by signal 31
Apr 26 12:39:15 s1lp15 sshd[12379]: Connection from 10.172.194.66 port 51534 on 10.245.236.15 port 22
Apr 26 12:39:16 s1lp15 sshd[12379]: Failed publickey for ubuntu from 10.172.194.66 port 51534 ssh2: RSA SHA256:
Apr 26 12:39:18 s1lp15 sshd[12379]: Accepted password for ubuntu from 10.172.194.66 port 51534 ssh2
Apr 26 12:39:18 s1lp15 sshd[12379]: fatal: privsep_preauth: preauth child terminated by signal 31
compared to a system with hw cryto disabled (means ssh working):
syslog:
Apr 26 12:42:04 s1lp15 systemd[1]: Started Session 30 of user ubuntu.
authlog:
Apr 26 12:42:01 s1lp15 sshd[12542]: Connection from 10.172.194.66 port 51658 on 10.245.236.15 port 22
Apr 26 12:42:02 s1lp15 sshd[12542]: Failed publickey for ubuntu from 10.172.194.66 port 51658 ssh2: RSA SHA256:
Apr 26 12:42:04 s1lp15 sshd[12542]: Accepted password for ubuntu from 10.172.194.66 port 51658 ssh2
Apr 26 12:42:04 s1lp15 sshd[12542]: pam_unix(
Apr 26 12:42:04 s1lp15 systemd-
Apr 26 12:42:09 s1lp15 sshd[12542]: User child is on pid 12605
Apr 26 12:42:09 s1lp15 sshd[12605]: Starting session: shell on pts/5 for ubuntu from 10.172.194.66 port 51658 id 0
Workaround:
in /etc/ssh/
change:
#UsePrivilegeSe
to:
UsePrivilegeSep
So it's an issue with the sandbox / seccomp
that got fixed in openssh 7.5
release notes: "sshd(8): Avoid sandbox errors for Linux S390 systems using an ICA crypto coprocessor."
corresponding patches/commits:
master branch https:/
- 5f1596e11d55539
- 9e96b41682aed79
Changed in openssh (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → High |
assignee: | nobody → Dimitri John Ledkov (xnox) |
milestone: | none → ubuntu-17.05 |
Changed in ubuntu-z-systems: | |
status: | New → Triaged |
description: | updated |
Changed in openssh (Ubuntu Zesty): | |
status: | Triaged → In Progress |
Changed in ubuntu-z-systems: | |
status: | Triaged → In Progress |
tags: | added: architecture-s39064 bugnameltc-153940 severity-high targetmilestone-inin1704 |
Changed in ubuntu-z-systems: | |
status: | In Progress → Fix Committed |
tags: |
added: verification-failed removed: verification-needed |
Changed in openssh (Ubuntu Artful): | |
status: | Triaged → Fix Committed |
Changed in openssh (Ubuntu Zesty): | |
status: | Fix Committed → In Progress |
Changed in openssh (Ubuntu Artful): | |
status: | Fix Released → Triaged |
importance: | High → Critical |
Changed in openssh (Ubuntu Zesty): | |
status: | In Progress → Confirmed |
importance: | High → Critical |
Changed in ubuntu-z-systems: | |
status: | Fix Committed → Triaged |
importance: | High → Critical |
Changed in openssh (Ubuntu Artful): | |
status: | Triaged → Fix Committed |
Changed in ubuntu-z-systems: | |
status: | Triaged → In Progress |
tags: | added: id-59a6de69fde9c920947b3d4b |
tags: | added: id-597a835aabb9be94fe80eb45 |
description: | updated |
7.5 is now in artful.
https:/ /launchpad. net/ubuntu/ +source/ openssh/ 1:7.5p1- 2