Skip to content

Instantly share code, notes, and snippets.

@JoaquimLey
Last active April 4, 2024 11:07
Show Gist options
  • Save JoaquimLey/31deaf857521319fcba8ee9f7af47299 to your computer and use it in GitHub Desktop.
Save JoaquimLey/31deaf857521319fcba8ee9f7af47299 to your computer and use it in GitHub Desktop.
Generating a new SSH key and adding it to the ssh-agent

Generating a new ssh-key

Open Terminal. Paste the text below, substituting in your GitHub email address.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

This creates a new ssh key, using the provided email as a label

Generating public/private rsa key pair.

  1. When you're prompted to Enter a file in which to save the key press Enter to accept the default file location.

Enter the file in which to save the key (you can press ENTER for default path):

(/Users/you/.ssh/id_rsa): [Press enter]

At the prompt, type a secure passphrase.

Enter passphrase (empty for no passphrase): [Type a passphrase]

Enter same passphrase again: [Type passphrase again]

Adding your SSH key to the ssh-agent

Before adding a new SSH key to the ssh-agent, you should have checked for existing SSH keys and generated a new SSH key.

Ensure ssh-agent is enabled:

start the ssh-agent in the background

eval "$(ssh-agent -s)"

Agent pid 59566

Add your SSH key to the ssh-agent. If you used an existing SSH key rather than generating a new SSH key, you'll need to replace id_rsa in the command with the name of your existing private key file.

$ ssh-add ~/.ssh/id_rsa

@bashM0nk3y
Copy link

bashM0nk3y commented May 25, 2018

Must be because you are using a macbook... Just kidding.. =)

Anyway.. im not sure if -K is even a valid option for ssh-add... you're probably wanting the ssh-add -k option (skips certificates)
After creating your keys you will have key-name and key-name.pub. By default they will be called id_rsa (private), and id_rsa.pub (public). Just make sure you are entering the correct key name and you should be good. Don't forget about tab completion in bash/zsh

Is that really your $user@$hostname ?

@JoaquimLey, thanks for the info!

@fajfer
Copy link

fajfer commented Oct 1, 2018

Anyway.. im not sure if -K is even a valid option for ssh-add...

-K adds passphrase to Macs' keychain

@HaldarMridul
Copy link

HaldarMridul commented Aug 5, 2019

Hey guys, I'm new to all this, I need help figuring out things.
I generated an ssh key and saved it with a filename "mygit" and it's saved in root.
Now, I want to add my key to ssh agent. I run the command as shown in the repo but I'm getting the error "No such file or directory."
How do I add my key to the agent?

EDIT:
Okay, I got it. I changed my directory in the command and it was added to the agent.
Thanks for reading.

@nikita-starostin
Copy link

It looks like a magic for me.

PS ssh-add ~/.ssh/id_rsa
~/.ssh/id_rsa: No such file or directory
PS cd ~/.ssh
PS ssh-add id_rsa
Enter passphrase for id_rsa:
Identity added: id_rsa

Why this ssh-add ~/.ssh/id_rsa doesn't work?

@JoaquimLey
Copy link
Author

It says that because you don't have that file on that directory. Have you followed all the steps?

@thetnainghtun
Copy link

why am I getting this error!!

nik-MacBook-Pro:mac281project nikunjan$ ssh-add -K ~/.ssh/nik: No such file or directory

you should replace (.ssh/nik) with your key file directory. in my case Documetns/git

@anonperezj
Copy link

followed each step but still got this:

USER@DESKTOP-NBRRB2G MINGW64 ~
$ eval $(ssh-agent -s)
Agent pid 2066

USER@DESKTOP-NBRRB2G MINGW64 ~
$ ssh-add ~/.ssh/id_rsa
/c/Users/USER/.ssh/id_rsa: No such file or directory

@JoaquimLey
Copy link
Author

Have you created your key and have the id_rsa file in your .ssh directory?

@mitia-anah
Copy link

I have exactly what anonperezj got. I created the key and i don't know whether I have id_rsa file in my .ssh directory or not. How can check it please? And if not, what can I do?

@JoaquimLey
Copy link
Author

@mitia-anah I don't know which Operating system you are on, but check you are seeing "invisible" files. The way you check is to go to that directory and see if the file is there.

@hmorgancode
Copy link

hmorgancode commented Mar 23, 2021

I had the problem people are describing: "ssh-add ~/.ssh/id_rsa" results in "No such file or directory"

I'm on Windows, I believe I solved the problem by using the command "ssh-add C:\Users\USER\.ssh\id_rsa" instead of using a tilde ~/.ssh/id_rsa to shorten the path.

@Emmanuella77
Copy link

For Windows, this worked for me:
$ eval "$(ssh-agent -s)"
Agent pid 554

$ ssh-add sshkey

note: sshkey is my filename

@Snax777
Copy link

Snax777 commented Apr 4, 2024

For Windows, this worked for me: $ eval "$(ssh-agent -s)" Agent pid 554

$ ssh-add sshkey

note: sshkey is my filename

Thanks. It also worked for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment