Certificates Stored in SAF
The following example assumes that the
SSHD2 user created in Section Creating the SSHD2 User is used to run the server.
To use SAF certificates for authenticating the server, do the following steps. Replace the names and IDs with those appropriate to your system:
- Create the server host key in SAF by giving the following TSO commands:
RACDCERT ID(SSHD2) GENCERT SUBJECTSDN(CN('LPAR1') OU('RD')
O('EXAMPLE')) SIZE(1024) WITHLABEL('LPAR1.EXAMPLE.COM')
RACDCERT ID(SSHD2) LIST
- Give the following TSO command to generate the certification request:
RACDCERT ID(SSHD2) GENREQ(LABEL('LPAR1.EXAMPLE.COM'))
- Use the PKCS#10 certification request in the dataset
'SSHD2.LPAR1.CRT.REQ' to enroll the certificate. The actual steps depend on your CA setup.
- After the enrollment is completed, store the received certificate to a dataset, for example
- To connect the new certificate to a key ring, give the following TSO commands:
RACDCERT ID(SSHD2) ADD('SSHD2.LPAR1.CRT') TRUST
RACDCERT ID(SSHD2) ADDRING(SSH-HOSTKEY)
RACDCERT ID(SSHD2) CONNECT(ID(SSHD2) LABEL('LPAR1.EXAMPLE.COM')
RACDCERT ID(SSHD2) LISTRING(SSH-HOSTKEY)
- For the settings to take effect, give the following TSO command:
SETROPTS RACLIST(DIGTCERT) REFRESH
- Define the z/OS SAF external key provider in the
HostKeyEkInitString "KEYS(ID(SSHD2) RING(SSH-HOSTKEY)
HostKeyEkInitString must point to a single private key. Setting the
HostKey.Cert.Required option to
yes defines that the server must authenticate with a certificate. When the z/OS SAF provider is used, setting the option to
no means that only the public key found in the SAF certificate is used. Setting the option to
optional means that both the SAF certificate and the public key found in the SAF certificate are used.
For more information on the configuration file options, see sshd2_config. For information on the format of the external key initialization string, see ssh-externalkeys.