Main Page > Server Software > Linux > Ubuntu
This article shows how to configure a SSH connection for authentication by using the public-key method. To do this, a key pair is created at the client, the public part of the key is transferred to the server, and afterwards the server is set up for key authentication. The user can log on to the server without a login password, only the password is required to protect the private key.The operating systems used in this article are on the one hand a Ubuntu 12.10 at the client side and a Ubuntu 12.04 at the server side.This guide was also validated working with Ubuntu 16.04 as client and server.
- 1On the client
- 2On the server
- 3Notes for other distributions
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 systems and comes with Git for Windows. Dec 18, 2019 Copy the Public Key to Ubuntu Server # Now that you generated your SSH key pair, the next step is to copy the public key to the server you want to manage. The easiest and the recommended way to copy your public key to the server is to use a utility called ssh-copy-id. On your local machine terminal type: ssh-copy-id remoteusername@serveripaddress.
On the client
The first configuration steps take place at the client side.
Home folder rights
By default, Ubuntu sets the user home directory permissions to 755. Nevertheless, for security reasons, check whether the permissions are set to 755 on your system and change them if necessary:
:~$ sudo chmod 755 /home/<USER>
Generate keypair
In the first step, a key pair with
ssh-keygen
is created at the client. If you use Ubuntu 18.04 on the server, the package openssh-server will be installed in the version 7.6.[1] Since this version, RSA bit lengths smaller than 1024 bits are no longer accepted.[2] In this example, a bit length of 4096 bits is selected for the RSA keys:Please note: It is recommended to protect the key with a passphrase for security reasons. This means that the key is not available in plain text, but is AES-CBC encrypted:
If the private key is stolen by an attacker, he has to find out the password of the key in order to access the server with the key. If the key is available in plain text, an attacker can use this stolen key to directly access the server.
Transfer the public key to the server
To transfer the public key to the server, the first step is to use the SSH connection via password authentication yet. The
ssh-copy-id
tool copies the corresponding identity file to the server:The above-mentioned procedure has created the following entry in the
/home/tktest/.ssh/authorized_keys
on the server:Test the key authentication
Now that the public key is transferred to the server, the connection can be tested from the client. In this case, it is important that the server does not ask for the user password, but of course the passphrase of the protected key is required!
The following dialog box appears for GUI-based systems:
After entering the password that protected the key when it was created, you are authenticated on the system:
On the server
This paragraph shows some additional configuration steps on the server side to harden the public-key authentication.
sshd configuration
In Ubuntu, it is generally sufficient to carry out the above-mentioned procedure for public-key authentication. In some situations it makes sense to deactivate password authentication completely.
Please note: After changing the following setting, it is no longer possible to log in with a password via ssh:
PasswordAuthentication no
.From the client, the connection is tested again:
In the above example, the dialog for entering the key password has been aborted. Since the log-on via password was deactivated, it was not possible to log-on to the system.
Forbid password authentication for just one user
Another way in which password authentication is not completely deactivated is to disable password authentication for specific users. This allows a user who does not have sudo privileges to log on to the server, for example. To gain root privileges, at least one additional password must be found for a user with sudo privileges. Plus, there's a way to completely exclude users from ssh:
This example:
- Prohibits SSH access for the user
test
- Deactivates password authentication for the user
tktest
- Password authentication is retained for all other users
Notes for other distributions
For other Linux distributions, the required steps may differ slightly. We would be happy to supplement our experiences with other distributions, which you are welcome to share with us via the feedback function.
Red Hat
One reader told us that the procedure described Red Hat does not work 1:1 in Red Hat. In the home directory of the user, the write permission was set for the group. After a
chmod 755
it worked to connect via ssh to the server without asking for a password.References
- ↑Package: openssh-server (1:7.6p1-4) (packages.ubuntu.com)
- ↑OpenSSH 7.6 Release Notes (openssh.com)
Retrieved from 'https://www.thomas-krenn.com/en/wikiEN/index.php?title=SSH_public_key_authentication_under_Ubuntu&oldid=3714'
Generate Public And Private Key Ubuntu Download
Generate RSA keys with SSH by using PuTTYgen
One effective way of securing SSH access to your cloud server is to usea public-private key pair. This means that a public key is placed onthe server and a private key is placed on your local workstation.Using a key pair makes it impossible for someone to log in by using justa password, as long as you set up SSH to deny password-basedauthentication.
This article provides steps for generating RSA keys by using PuTTYgen onWindows for secure SSH authentication with OpenSSH.
Generate keys
In Windows, use PuTTYgen to generate your public and private keys.
- If needed, download PuTTYgen from the PuTTY download page.(PuTTYgen might have been installed previously with PuTTY or WinSCP.)
- Launch the program, and then click the Generate button.The program generates the keys for you.
- Enter a unique key passphrase in the Key passphrase andConfirm passphrase fields.For additional information about using passphrases,see Log in with a SSH Private Key on Windows.
- Save the public and private keys by clicking the Save public keyand Save private key buttons.
- From the Public key for pasting into OpenSSH authorized_keys filefield at the top of the window, copy all the text (starting with ssh-rsa)to your clipboard by pressing Ctrl-C.You need this key available on your clipboard to paste eitherinto the public key tool in the Control Panel or directly into theauthorized keys on your cloud server.
Use the key pair
You can use the RSA key pair in the following ways.
Generate Public Key Ubuntu
Specify your SSH key when creating a new cloud server
When you create a cloud server, you can assign a public key from the list of keys.If your key is not already in the list, you may add it, and then assign it.
Generate Public And Private Key Ubuntu Windows 7
Add a new public key to the list
- Under Advanced Options on the Create Server page, click Manage SSHKeys.
- Select public key for the cloud server from the SSH Keys listand click Add Public Key.
- Enter the key name, select the region, and paste the entire publickey into the Public Key field. Then click Add Public Key.
- Go back to the Create Server page, and confirm that your key is listedin the SSH Key list.
Assign a public key
- Under Advanced Options on the Create Server page, select the publickey you want to use from the SSH key drop-down menu.
- When you are done specifying the all the other details for the server,click Create Server.
Assign your SSH Key to an existing cloud server
Generate Public Private Key Ubuntu
To make use of your newly generated RSA key pair, you must tell PuTTY touse it when connecting to your cloud server.
- To edit the file (or create it), run the following command on the cloud server:
- Paste the text onto its own line in the file.You must have the key available in your clipboard to paste it. The key and itsassociated text (the ssh-rsa identified at the start and the comment at the end)must be on one line in the file. If the text is word-wrapped onto multiple linesan error might occur when connecting.
- If you created the authorized_keys file, change its permissionsafter you’re done editing it by running the following command:
- Open PuTTY, and go to the SSH > Auth section.
- Browse to the location of the key file, and load the private key.
- Go to the Session page, and save the session. This saves the configurationso that PuTTY uses the key every time that you connect to your cloudserver.
After you save your session, your key is loaded automatically when youconnect to your server.
Related article
Experience what Rackspace has to offer.
Generate Public Private Key Ubuntu
Ubuntu Generate Rsa Key
©2020 Rackspace US, Inc.
Generate Public And Private Key Ubuntu Free
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License