Aix Generate Ssh Host Keys

A host key is a cryptographic key used for authenticating computers in the SSH protocol. Host keys are key pairs, typically using the RSA, DSA, or ECDSA algorithms. Public host keys are stored on and/or distributed to SSH clients, and private keys are stored on SSH servers. May 18, 2010 Create a user on the client side and generate keys for this user. Public-private key pairs can be generated using the ssh-keygen command. On the client side, go to /etc/ssh/sshconfig file and set PubkeyAuthentication yes. On the server side, go to /etc/ssh/sshdconfig file to set PubkeyAuthentication yes.

A step-by-step guide for enabling EFS keystore access while OpenSSH Public Key Authentication is used

What is EFS?

In general, the Encrypted Files System (EFS) support on AIX enables individual users on the system to encrypt their data and also access it through keyed protection. Users will be able to setup keys and assign a default key for EFS. These keys are stored in cryptographically protected key store and upon successful login, the user's keys are loaded into the kernel and associated with the kernel processes.

Private keys are associated to users and groups. These keys are stored in keystores and are protected by passwords. A user keystore contains the user's private key and also password to open the user's group keystores; the group keystores contain the groups' private keys.

When a process opens a keystore, either at user login time or using a specific EFS user command, the keys contained in this keystore (and related keystores) are loaded in the kernel and associated with the process credentials. Later on,when the process needs to open an EFS protected file, these credentials are tested. If a key matching the file protection is found, then the process is able to decrypt the file key and therefore the file content.

Keystore creation or opening can happen at login time, by the way of an EFS LAM (old) or PAM (new) module. These modules, as well as the commands (for example, chmod) make calls to some EFS APIs provided by a libefs.a library. Two user commands exist, efsmgr and efskeymgr, to give some control over EFS to the user and administrator.

How to setup Public Key Authentication in OpenSSH

Create a user on the client side and generate keys for this user. Public-private key pairs can be generated using the ssh-keygen command.

/generate-public-private-key-pair-git.html. Symmetric encryption (private-key encryption or secret-key encryption) utilize the same key for. Asymmetric encryption utilizes a pair of keys like public and private key for better security where a message sender encrypts the message with the public key and the receiver decrypts it with his/her private key.Public and Private key pair helps to encrypt information that ensures data is protected during transmission.Public KeyPublic key uses asymmetric algorithms that convert messages into an unreadable format.

  1. On the client side, go to /etc/ssh/ssh_config file and set PubkeyAuthentication yes.

    On the server side, go to /etc/ssh/sshd_config file to set PubkeyAuthentication yes.

  2. Configure OpenSSH server and client to use EFS logon while Public Key Authentication.

    On the client side, go to /etc/ssh/ssh_config file and set 'AllowPKCS12keystoreAutoOpen yes'.

    On the server side, go to /etc/ssh/sshd_config file and set 'AllowPKCS12keystoreAutoOpen yes'.

  3. Restart the server:

    Generate keys with the following command using a user created as follows:

    The command ssh-keygen prompts for passphrase. This passphrase will be used to encrypt the private-key file on the client side. Even ssh-keygen command will accept the empty passphrase, in which case, private-key file will not be encrypted.

    Copy the public keys on to the server in the file ~/.ssh/authorized_keys.

Similarly, any number of a Client user's public key can be copied in the file ~/.ssh/authorized_keys file on server user account.

AIX EFS Configurations

EFS has to be enabled on the server side using the efsenable command. This creates an admin keystore. The keystore gets created for a user in two cases.

  1. Whenever a new user is created.
  2. When passwd is assigned to the user or when user logs in.

The path where user keystore gets created on the system is /var/efs/users/<userlogin>/keystore.

The format of user keystore is in PKCS#12 which contains public and private objects. Private objects are protected by user access key. This user access key is nothing but a hash of a user-defined password (either login password or another password specific to EFS).

Aix Hosts File

Public key cookie needs to be created and inserted into the keystore on server side. User invokes the efskeymgr command to insert the cookie. A public key cookie is the passwd encrypted with users public key.

The following steps show how to create a keystore for a user and insert the public key cookies.

Aix Ssh Command

When all the previous configuration setting are complete, run the ssh to log onto the remote machine using the public key authentication.

Run the following command to log on to the remote machine:

Aix Generate Ssh Host Keys Code

  • Once the connection is established and public key authentication is successful, the ssh server checks if AllowPKCS12keystoreAutoOpen is set to 'yes' in the sshd_config file. If so, it sends the ssh client a data packet.
  • The ssh client, on receiving this data packet, checks if the same option is enabled on the client side. That is, the ssh client is configured for this feature by checking if the AllowPKCS12keystoreAutoOpen is set to yes in the ssh_config file. If enabled, the client sends an acknowledgement to the server saying that it too supports this feature.
  • On receiving the ACK from the ssh client, the sshd opens the user's efs keystore in /var/efs/user/<username>/keystore and reads the publickey cookie SSHPub(AK) and sends it to ssh client.
  • The ssh client, on receiving the SSHPub from server, decrypts it with its private key and sends the accesskey(AK) back to server. With AK, sshd will open the user's private part of the user's keystore and call the EFS kernel extension to push this opened keystore into the kernel and associate it with the user's log on process.

Verify the authentication and EFS login

The OpenSSH client user ram is all set for Public Key authentication to user laxman on the OpenSSH server with EFS login. Verify the same with ssh login from client:

Applications for this setup

This setup can be used along with DB2 UDB DPF for which OpenSSH public key authentication can be used. The DB2 tables are encrypted using EFS.

Troubleshooting

Aix Generate Ssh Host Keys Free

Check if all the configurations listed above have been performed. Check if the public key cookie is inserted properly byefskeymgr command by verifying the keystore file size before and after the insertion. Enable debug for sshd and check if any failures. Also, verify once with password authentication if the account login and efs login succeed.

Downloadable resources

Related topics

Aix Generate Ssh Host Keys Free

  • Learn more about OpenSSH.
  • You can download IBM version of OpenSSH for AIX.
  • EFS on AIX : Learn more about EFS filesystem on AIX 6.1.