. Normally this happens when SSH keys don’t get generated on the startup. If your system is compromised and your keys are stolen and you want to generate new keys. There could be some other reasons also but if you are reading this article then i believe you already have some reason with you. Generating Host Keys. You’re looking for a pair of files named something like iddsa or idrsa and a matching file with a.pub extension. The.pub file is your public key, and the other file is the corresponding private key. If you don’t have these files (or you don’t even have a.ssh directory), you can create them by running a program called ssh-keygen, which is provided with the SSH package on Linux/macOS.
I am a new RHEL 8 server sysadmin. How do I configure SSH public key-based authentication for RHEL (Red Hat Enterprise Linux) 8 server?Introduction – SSH is an acronym for secure shell. It is a suite of cryptographic network protocol. It allows users to log in and transfer files securely over the unsecure network such as the Internet. OpenSSH is an implementation of SSH protocol on RHEL 8. You can log in using RHEL 8 user and password account. However, OpenSSH project recommends log in using a combination of a private and public SSH keys.
Advertisements
Sample set up for our RHEL 8 server
Where,
- You generate a key pair on your Linux/Unix/macOS desktop.
- Place the public key on RHEL 8 server.
- One can unlock public key using a private key stored on your desktop with the help of ssh command.
- When both the public and private key correct you can log in without a password.
How do I set up SSH keys on RHEL 8 server?
The procedure to set up SSH key on Red Hat Enteprise Linux 8 server:
- On your local desktop type:
ssh-keygen - Install public key into remote RHEL 8 server using:
ssh-copy-id user@remote-RHEL8-server-ip - Use ssh for password less login:
ssh user@remote-RHEL8-server-ip
Let us see all commands and steps in details.
How to create the ed25519 or RSA key pair
The syntax is:
Where,
ssh-keygen -t ed25519
ssh-keygen -t rsa
ssh-keygen -t rsa -b 4096 -f ~/.ssh/aws-lighsail.key -C 'My AWS SSH Keys'
ssh-keygen -t ed25519 -f ~/.ssh/linode-usa-www1-vps.key -C 'My Linode SSH Keys for www'
Where,
- -t rsa OR -t ed25519 : Specifies the type of key to create. The possible values “dsa”, “ecdsa”, “ed25519”, or “rsa” for SSH protocol version 2.
- -b 4096 : Specifies the number of bits in the key to create.
- -f~/.ssh/aws-lighsail.key : Specifies the filename of the key file.
- -C -C 'My AWS SSH Keys' : Set a new comment.
I am going type the following command on my Ubuntu desktop to create the key pair:
I strongly recommend that you set up a passphrase when prompted.
$ ssh-keygen -t ed25519
I strongly recommend that you set up a passphrase when prompted.
How to copy the public key
Now our key paid generated and stored in ~/.ssh/ directory. You must copy a public SSH key file named ~/.ssh/id_ed25519.pub (or ~/.ssh/id_rsa.pub if you created RSA key) to the RHEL 8 server. Try the ssh-copy-id command as follows:
For example:
$ ssh-copy-id -i ~/.ssh/fileNameHere.pubuser@remote-RHEL8-server-ip
For example:
$ ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]
How to log in using ssh and without a password
Now try logging into the machine, with the ssh command as follows:
You should be able to log in without a password. If you set up a passphrase, unlock it as follows for your current session so that you don’t have to enter it every time you run ssh, sftp, scp, rsync and other commands:
$ ssh user@rhel-8-server
$ ssh [email protected]
You should be able to log in without a password. If you set up a passphrase, unlock it as follows for your current session so that you don’t have to enter it every time you run ssh, sftp, scp, rsync and other commands:
$ ssh-agent $SHELL
$ ssh-add
Optional settings for root user
Disable root user log in all together on RHEL 8 via ssh. Log in as root user on RHEL 8 and run following to add a user named vivek to wheel group:
Allows users in group wheel can use sudo command to run all commands on RHEL 8 server. Next disable root user login by adding the following line to sshd_config:
Disable the password for root login and only allow ssh keys based login:
# usermod -aG wheel vivek
# id vivek
Allows users in group wheel can use sudo command to run all commands on RHEL 8 server. Next disable root user login by adding the following line to sshd_config:
# vi /etc/ssh/sshd_config
Disable the password for root login and only allow ssh keys based login:
Save and close the file. Reload the ssh server:
For more info see “Top 20 OpenSSH Server Best Security Practices“.
# systemctl reload sshd.service
For more info see “Top 20 OpenSSH Server Best Security Practices“.
Conclusion
You learned how to set up and use SSH keys to manage your RHEL 8 based server. For more info see OpenSSH man pages here.
ADVERTISEMENTS
Linux starter here.Centos Ssh Setup
Previous sysadmin installed/configured a CENTOS 6.x server and has SFTP running
Existing users/vendors are able to login with a user/pass combo with no issues.
New vendor requires the ability to login to SFTP from another local system using public keys.
![Keygen Keygen](/uploads/1/2/6/0/126072111/731887395.png)
![Centos Generate New Ssh Key Centos Generate New Ssh Key](/uploads/1/2/6/0/126072111/498906009.jpg)
When I attempt to use a newly created account on my SFTP server (sftp VENDORACCOUNT@host from the vendors server or any other client) I am prompted for a password for VENDORACCOUNT
If I type in the password for VENDORACCOUNT, I get connection to host closed by remote host
I'm at a loss and have spent hours trying to track down a solution.
When requesting information, please remember I'm not by any means a Linux expert.
Thanks for any assistance!