To generate the public/private key pair, enter this in the Command Prompt: ssh-keygen At the first prompt, “Enter file in which to save the key,” press Enter to save it in the default location. For help with importing the public key into Bitvise SSH Server, check the Public Key Authentication section of our SSH Server Usage FAQ. Configure public key authentication. Once the public key has been uploaded or imported for your account in the SSH Server, configure the SSH Client to enable public key authentication on the Login tab. Dec 01, 2017 ssh-keygen can create RSA keys for use by SSH protocol version 1 and DSA, ECDSA or RSA keys for use by SSH protocol version 2. The type of key to be generated is specified with the -t option. If invoked without any arguments, ssh-keygen will generate an RSA key for use in SSH protocol 2 connections.
Using SSH public-key authentication to connect to a remote system is a robust, more secure alternative to logging in with an account password or passphrase. SSH public-key authentication relies on asymmetric cryptographic algorithms that generate a pair of separate keys (a key pair), one 'private' and the other 'public'. You keep the private key a secret and store it on the computer you use to connect to the remote system. Conceivably, you can share the public key with anyone without compromising the private key; you store it on the remote system in a .ssh/authorized_keys
directory.
Setting Up SSH Access to a Remote Server Using Windows. To set up SSH access the following is required: Use PuttyGen to create the public/private keys; Upload the public key to the remote server. Convert the.ppk file to RSA key pair file supported by OpenSSH; Optionally, you can also use Pageant as an SSH Authentication agent. Setting Up SSH Access to a Remote Server Using Windows. To set up SSH access the following is required: Use PuttyGen to create the public/private keys; Upload the public key to the remote server. Convert the.ppk file to RSA key pair file supported by OpenSSH; Optionally, you can also use Pageant as an SSH Authentication agent.
To use SSH public-key authentication:
~/.ssh/authorized_keys
file in your account.To set up public-key authentication using SSH on a Linux or macOS computer:
To generate RSA keys, on the command line, enter:
Enter
or Return
without entering a filename.Alternatively, you can enter a filename (for example, my_ssh_key
) at the prompt, and then press Enter
or Return
. However, many remote hosts are configured to accept private keys with the default filename and path (~/.ssh/id_rsa
for RSA keys) by default. Consequently, to authenticate with a private key that has a different filename, or one that is not stored in the default location, you must explicitly invoke it either on the SSH command line or in an SSH client configuration file (~/.ssh/config
); see below for instructions.
Enter
or Return
. If you press Enter
or Return
without entering a password, your private key will be generated without password-protection.Your private key will be generated using the default filename (for example, id_rsa
) or the filename you specified (for example, my_ssh_key
), and stored on your computer in a .ssh
directory off your home directory (for example, ~/.ssh/id_rsa
or ~/.ssh/my_ssh_key
).
The corresponding public key will be generated using the same filename (but with a .pub
extension added) and stored in the same location (for example, ~/.ssh/id_rsa.pub
or ~/.ssh/my_ssh_key.pub
).
~/.ssh/id_rsa.pub
) to your account on the remote system (for example, [email protected]
); for example, using command-line SCP: You'll be prompted for your account password. Your public key will be copied to your home directory (and saved with the same filename) on the remote system.
~/.ssh/authorized_keys
file in your account (if your account doesn't have ~/.ssh/authorized_keys
file, system administrators can create one for you). Once your public key is added to your ~/.ssh/authorized_keys
file on the remote system, the setup process is complete, and you should now be able to SSH to your account from the computer that has your private key.~/.ssh/authorized_keys
file, create one; on the command line, enter the following commands: ~/.ssh/authorized_keys
file, executing these commands will not damage the existing directory or file.~/id_rsa.pub
) to a new line in your ~/.ssh/authorized_keys
file; on the command line, enter: You may want to check the contents of ~/.ssh/authorized_keys
to make sure your public key was added properly; on the command line, enter:
~/id_rsa.pub
) from your account on the remote system; on the command line, enter:Alternatively, if you prefer to keep a copy of your public key on the remote system, move it to your .ssh
directory; on the command line, enter:
[email protected]
) from the computer (for example, host1
) that has your private key (for example, ~/.ssh/id_rsa
):If the private key you're using does not have the default name, or is not stored in the default path (not ~/.ssh/id_rsa
), you must explicitly invoke it in one of two ways:
-i
flag and the path to your private key.For example, to invoke the private key host2_key
, stored in the ~/.ssh/old_keys
directory, when connecting to your account on a remote host (for example, [email protected]
), enter:
Nov 22, 2015 This little tool that I FOUND will help you get into cod 4 servers and be able to play if you use hacks and try to get around bans please don't do that here this tool is for legit players who need. Cod4 key generator.
~/.ssh/config
), if it exists/etc/ssh/ssh_config
)The SSH client configuration file is a text file containing keywords and arguments. To specify which private key should be used for connections to a particular remote host, use a text editor to create a ~/.ssh/config
that includes the Host
and IdentityFile
keywords.
For example, for connections to host2.somewhere.edu
, to make SSH automatically invoke the private key host2_key
, stored in the ~/.ssh/old_keys
directory, create a ~/.ssh/config
file with these lines included:
Once you save the file, SSH will use the specified private key for future connections to that host.
You can add multiple Host
and IdentityFile
directives to specify a different private key for each host listed; for example:
Alternatively, you can use a single asterisk ( *
) to provide global defaults for all hosts (specify one private key for several hosts); for example:
For more about the SSH client configuration file, see the OpenSSH SSH client configuration file on the web or from the command line (man ssh_config
).
The PuTTY command-line SSH client, the PuTTYgen key generation utility, the Pageant SSH authentication agent, and the PuTTY SCP and SFTP utilities are packaged together in a Windows installer available under The MIT License for free download from the PuTTY development team.
After installing PuTTY:
2048
).putty_key
), select a location on your computer to store it, and then click Save.putty_private_key
), select a location on your computer to store it, and then click Save.putty_rsa
), select a location on your computer to store it, and then click Save.If the remote system does not support password-based authentication, you will need to ask system administrators to add your public key to the ~/.ssh/authorized_keys
file in your account (if your account doesn't have ~/.ssh/authorized_keys
file, system administrators can create one for you). Once your public key is added to your account's ~/.ssh/authorized_keys
file on the remote system..
~/.ssh/authorized_keys
file, create one; on the command line, enter the following commands:If your account on the remote system already has ~/.ssh/authorized_keys
, executing these commands will not damage the existing directory or file.
~/.ssh/authorized_keys
file, and then save and close the file.putty_private_key.ppk
), select the file, and then click Open.If your private key is not passphrase-protected, Pageant will add your private key without prompting you for a passphrase.
Either way, Pageant stores the unencrypted private key in memory for use by PuTTY when you initiate an SSH session to the remote system that has your public key.
Deathstar
), and then click Save.Startup
folder to launch Pageant and load your private key automatically whenever you log into your desktop. For instructions, finish the rest of the following steps.Startup
folder. Press Win-r
, and in the 'Open' field, type shell:startup
, and then press Enter
.Startup
folder, and then select New and Shortcut.pageant.exe
) followed by the path to your private key file (for example, putty_private_key.ppk
); enclose both paths in double quotes; for example: PAGEANT
).The next time you log into your Windows desktop, Pageant will start automatically, load your private key, and (if applicable) prompt you for the passphrase.
Updated by LinodeWritten by Linode
Report an Issue View File Edit File
Password authentication is the default method most SSH (Secure Shell) clients use to authenticate with remote servers, but it suffers from potential security vulnerabilities, like brute-force login attempts. An alternative to password authentication is public key authentication, in which you generate and store on your computer a pair of cryptographic keys and then configure your server to recognize and accept your keys. Using key-based authentication offers a range of benefits:
Key-based login is not a major target for brute-force hacking attacks.
If a server that uses SSH keys is compromised by a hacker, no authorization credentials are at risk of being exposed.
Because a password isn’t required at login, you are able to able to log in to servers from within scripts or automation tools that you need to run unattended. For example, you can set up periodic updates for your servers with a configuration management tool like Ansible, and you can run those updates without having to be physically present.
This guide will explain how the SSH key login scheme works, how to generate an SSH key, and how to use those keys with your Linode.
NoteSSH keys are generated in pairs and stored in plain-text files. The key pair (or keypair) consists of two parts:
A private key, usually named id_rsa
. The private key is stored on your local computer and should be kept secure, with permissions set so that no other users on your computer can read the file.
Caution
A public key, usually named id_rsa.pub
. The public key is placed on the server you intend to log in to. You can freely share your public key with others. If someone else adds your public key to their server, you will be able to log in to that server.
When a site or service asks for your SSH key, they are referring to your SSH public key (id_rsa.pub
). For instance, services like GitHub and Gitlab allow you to place your SSH public key on their servers to streamline the process of pushing code changes to remote repositories.
In order for your Linode to recognize and accept your key pair, you will need to upload your public key to your server. More specifically, you will need to upload your public key to the home directory of the user you would like to log in as. If you would like to log in to more than one user on the server using your key pair, you will need to add your public key to each of those users.
To set up SSH key authentication for one of your server’s users, add your public key to a new line inside the user’s authorized_keys
file. This file is stored inside a directory named .ssh/
under the user’s home folder. A user’s authorized_keys
file can store more than one public key, and each public key is listed on its own line. If your file contains more than one public key, then the owner of each key listed will be able to log in as that user.
To give someone else access to your server’s user, simply add their public key on a new line in your authorized_keys
file, just as you would add your own. To revoke access for that person, remove that same line and save the changes.
When logging in to a server using SSH, if there is a public key on file on that server, the server will create a challenge. This challenge will be crafted in such a way that only the holder of the private SSH key will be able to decipher it.
This challenge-response action happens without any user interaction. If the person attempting to log in has the corresponding private key, then they will be safely logged in. If not, the login will either fail or fall back to a password-based authentication scheme.
You can optionally provide an additional level of security for your SSH keys by encrypting them with a passphrase at the time of creation. When you attempt to log in using an encrypted SSH key, you will be prompted to enter its passphrase. This is not to be confused with a password, as this passphrase only decrypts the key file locally and is not transferred over the Internet as a password might be.
If you’d like to set up your logins so that they require no user input, then creating a passphrase might not be desirable, but it is strongly recommended nevertheless.
Perform the steps in this section on your local machine.
Create a new key pair.
CautionThis command will overwrite an existing RSA key pair, potentially locking you out of other systems.
If you’ve already created a key pair, skip this step. To check for existing keys, run
ls ~/.ssh/id_rsa*
.If you accidentally lock yourself out of the SSH service on your Linode, you can still use the Lish console to login to your server. After you’ve logged in via Lish, update your
authorized_keys
file to use your new public key. This should re-establish normal SSH access.
The -b
flag instructs ssh-keygen
to increase the number of bits used to generate the key pair, and is suggested for additional security.
Press Enter to use the default names id_rsa
and id_rsa.pub
in the /home/your_username/.ssh
directory before entering your passphrase.
While creating the key pair, you will be given the option to encrypt the private key with a passphrase. This means that the key pair cannot be used without entering the passphrase (unless you save that passphrase to your local machine’s keychain manager). We suggest that you use the key pair with a passphrase, but you can leave this field blank if you don’t want to use one.
There are a few different ways to upload your public key to your Linode from Linux and macOS client systems:
ssh-copy-id
is a utility available on some operating systems that can copy a SSH public key to a remote server over SSH.
To use ssh-copy-id
, pass your username and the IP address of the server you would like to access:
You’ll see output like the following, and a prompt to enter your user’s password:
Verify that you can log in to the server with your key.
Secure Copy (scp
) is a tool that copies files from a local computer to a remote server over SSH:
authorized_keys
file on your server. If you have already set up other public keys on your server, use the ssh-copy-id
command or enter your key manually.Connect to your server via SSH with the user you would like to add your key to:
Create the ~/.ssh
directory and authorized_keys
file if they don’t already exist:
Give the ~/.ssh
directory and authorized_keys
files appropriate file permissions:
In another terminal on your local machine, use scp
to copy the contents of your SSH public key (id_rsa.pub
) into the authorized_keys
file on your server. Substitute in your own username and your server’s IP address:
Verify that you can log in to the server with your key.
You can also manually add an SSH key to a server:
Begin by copying the contents of your public SSH key on your local computer. You can use the following command to output the contents of the file:
You should see output similar to the following:
Note that the public key begins with ssh-rsa
and ends with [email protected]
.
Once you have copied that text, connect to your server via SSH with the user you would like to add your key to:
Create the ~/.ssh
directory and authorized_keys
file if they don’t already exist:
Give the ~/.ssh
directory and authorized_keys
files appropriate file permissions:
Open the authorized_keys
file with the text editor of your choice (nano
, for example). Then, paste the contents of your public key that you copied in step one on a new line at the end of the file.
Save and close the file.
NoteIf you initially logged into the server as
root
but edited theauthorized_keys
file of another user, then the.ssh/
folder andauthorized_keys
file of that user may be owned byroot
. Set that other user as the files’ owner:
Verify that you can log in to the server with your key.
SSH into the server from your local machine:
If you chose to use a passphrase when creating your SSH key, you will be prompted to enter it when you attempt to log in. Depending on your desktop environment, a window may appear:
CautionDo not allow the local machine to remember the passphrase in its keychain unless you are on a private computer which you trust.
You may also see the passphrase prompt at your command line:
Enter your password. You should see the connection establish in the local terminal.
The following instructions use the PuTTY software to connect over SSH, but other options are available on Windows too.
Download PuTTYgen (puttygen.exe
) and PuTTY (putty.exe
) from the official site.
Launch puttygen.exe
. The RSA
key type at the bottom of the window is selected by default for an RSA key pair but ED25519
(EdDSA using Curve25519) is a comparable option if your remote machine’s SSH server supports DSA signatures. Do not use the SSH-1(RSA)
key type unless you know what you’re doing.
Increase the RSA key size from 2048
bits 4096
and click Generate:
PuTTY uses the random input from your mouse to generate a unique key. Once key generation begins, keep moving your mouse until the progress bar is filled:
When finished, PuTTY will display the new public key. Right-click on it and select Select All, then copy the public key into a Notepad file.
Save the public key as a .txt
file or some other plaintext format. This is important–a rich text format such as .rtf
or .doc
can add extra formatting characters and then your private key won’t work:
Enter a passphrase for the private key in the Key passphrase and Confirm passphrase text fields. Important: Make a note of your passphrase, you’ll need it later:
Click Save private key. Choose a file name and location in Explorer while keeping the ppk
file extension. If you plan to create multiple key pairs for different servers, be sure to give them different names so that you don’t overwrite old keys with new:
Launch putty.exe
. Find the Connection tree in the Category window, expand SSH and select Auth. Click Browse and navigate to the private key you created above:
Scroll back to the top of the Category window and click Session. Enter the hostname or IP address of your Linode. PuTTY’s default TCP port is 22
, the IANA assigned port for for SSH traffic. Change it if your server is listening on a different port. Name the session in the Saved Sessions text bar and click Save:
Click the Open button to establish a connection. You will be prompted to enter a login name and password for the remote server.
Once you’re logged in to the remote server, configure it to authenticate with your SSH key pair instead of a user’s password. Create an .ssh
directory in your home directory on your Linode, create a blank authorized_keys
file inside, and set their access permissions:
Open the authorized_keys
file with the text editor of your choice (nano
, for example). Then, paste the contents of your public key that you copied in step one on a new line at the end of the file.
Save, close the file, and exit PuTTY.
Verify that you can log in to the server with your key.
Uploading a public key from Windows can also be done using WinSCP:
Cautionauthorized_keys
file on your server. If you have already set up other public keys on your server, use the PuTTY instructions instead.In the login window, enter your Linode’s public IP address as the hostname, the user you would like to add your key to, and your user’s password. Click Login to connect.
Once connected, WinSCP will show two file tree sections. The left shows files on your local computer and the right shows files on your Linode. Using the file explorer on the left, navigate to the file where you saved your public key in Windows. Select the public key file and click Upload in the toolbar above.
You’ll be prompted to enter a path on your Linode where you want to upload the file. Upload the file to /home/your_username/.ssh/authorized_keys
.
Verify that you can log in to the server with your key.
Start PuTTY and Load your saved session. You’ll be prompted to enter your server user’s login name as before. However, this time you will be prompted for your private SSH key’s passphrase rather than the password for your server’s user. Enter the passphrase and press Enter.
If your SSH connections are not working as expected, or if you have locked yourself out of your system, review the Troubleshooting SSH guide for troubleshooting help.
It is possible to provision each new Linode you create with an SSH public key automatically through the Cloud Manager.
Log in to the Cloud Manager.
Click on your username at the top right hand side of the page. Then click on My Profile in the dropdown menu that appears:
NoteIf you are viewing the Cloud Manager in a smaller browser window or on a smaller device, then the My Profile link will appear in the sidebar links. To view the sidebar links, click on the disclosure button to the left of the blue Create button at the top of the page.
From the My Profile page, select the SSH Keys tab, and then click Add a SSH Key:
Create a label for your key, then paste in the contents of your public SSH key (id_rsa.pub
):
Click Add Key.
When you next create a Linode you’ll be given the opportunity to include your SSH key in the Linode’s creation. This key will be added to the root user of the new Linode.
In the Create Linode form, select the SSH key you’d like to include. This field will appear below the Root Password field:
After you set up your SSH keys and confirm they are working as expected, review the How to Secure Your Server guide for instructions on disabling password authentication for your server.
This guide is published under a CC BY-ND 4.0 license.