How to reset or change the passphrase for a GitHub SSH key?
Asked Answered
A

6

104

I have forgoten my passphrase in Git. How do I reset it? I found two solutions on Stack Overflow, but I want to know what process to follow to reset it or to get it.

Aardvark answered 17/4, 2012 at 10:47 Comment(1)
Change is same as add: #3819386Cessation
G
106

If you had generate a SSH-key with passphrase and then you forget your passphrase for this SSH-key,there's no way to recover it, You'll need to generate a brand new SSH keypair or switch to HTTPS cloning so you can use your GitHub password instead.

BUT,there are exceptions

If you configured your SSH passphrase with the OS X Keychain, you may be able to recover it.

  1. In Finder, search for the Keychain Access app.
  2. In Keychain Access, search for SSH.
  3. Double click on the entry for your SSH key to open a new dialog box.
  4. Keychain access dialogIn the lower-left corner, select Show password.
  5. You'll be prompted for your administrative password. Type it into the "Keychain Access" dialog box.
  6. Your password will be revealed.

Refer to Github help - How do I recover my SSH key passphrase?

Geronto answered 3/3, 2016 at 13:0 Comment(3)
One of those answers in their typical circumstances.... which feel like lifesavers! Especially when Google search and Github both SCREAM at you that this is not possible!Mitsue
That exception is a lifesaver, thanks!Sabin
That exception, oh man. Saved me so much time.Pouliot
N
73

You can change the passphrase for your private key by doing:

ssh-keygen -f ~/.ssh/id_rsa -p
Newsstand answered 17/4, 2012 at 10:48 Comment(8)
This implies the ~/.ssh/id_rsa is not itself encrypted, isn't it? But if it's encrypted, we're back at square one.Myalgia
This asks for an old pass phrase. Not helpful.None
With regards to OP's question – no, this is not helpful if you forgot your password. But if you are simply looking to reset your password, this is the way!Gilgai
How can someone enter "current password" if they forgot it? Wrong solution.Colicweed
Question title says 'reset or change' – I landed here googling a solution to simply change the password on my keys. Number of upvotes shows I'm not the only one.Hin
Wrong answer. You need to know the previous password.Impious
I downvoted this answer because it's not what the OP asks for. Clearly, the OP writes "I have forgoten..." and asks for a way to 'recover' access to a key without the current passphrase.Limestone
After changing the passphrase, this will be needed to copy ssh keys: pbcopy < ~/.ssh/id_rsa.pubTaction
M
70

In short there's no way to recover the passphrase for a pair of SSH keys. Why? Because it was intended this way in the first place for security reasons. The answers the other people gave you are all correct ways to CHANGE the password of your keys, not to recover them. So if you've forgotten your passphrase, the best you can do is create a new pair of SSH keys. Here's how to generate SSH keys and add it to your GitHub account.

Mowbray answered 28/8, 2012 at 14:34 Comment(1)
@TechMLG That's definitely the way how to do it (follow the link to the GitHub help)! Worked for me to setup a new SSH key file and passphrase. The OP should consider accepting.Doehne
A
18

Passphrases can be added to an existing key or changed without regenerating the key pair:
Note This will work if keys doesn't had a passphrase, otherwise you'll get this: Enter old passphrase: then Bad passphrase

$ ssh-keygen -p
Enter file in which the key is (/Users/tekkub/.ssh/id_rsa):
Key has comment '/Users/tekkub/.ssh/id_rsa'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.

If your key had passphrase then, There's no way to recover the passphrase for a pair of SSH keys. In that case you have to create a new pair of SSH keys.

  1. Generating SSH keys
Anecdotal answered 17/4, 2012 at 12:38 Comment(1)
This is good if the keys doesn't have a passphrase, but if they had it and you can't remember it, then this is not usefull 'cause you'll get this: Enter old passphrase: then Bad passphrase.Mowbray
M
7
  1. Log in to your github account.
  2. Go to the "Settings" page (the "wrench and screwdriver" icon in the top right corner of the page).
  3. Go to "SSH keys" page.
  4. Generate a new SSH key (probably studying the links provided by github on that page).
  5. Add your new key using the "Add SSH key" link.
  6. Verify your new key works.
  7. Make gitub forget your old key by using the "Delete" link next to it in the list of known keys.
Myalgia answered 3/5, 2012 at 22:23 Comment(2)
the question is reset or change! not get a new oneOrdination
@jürgen-k, the passphrase is used to cryptographically encrypt an SSH key. The whole point of doing this is that it's only possible to use the key if you know the passphrase. If there would exist a way to recover or "reset" (whatever that could mean) the password used to deceypt an encrypted material, the utility of such a cryptographic system would be close to zero. (Note that SSH is most used for remote access to servers, not for Git). TLDR: in our case the answer "it's not possible" would be useless however correct.Myalgia
U
-2

If you are using Linux/Mac then you can remove file known_hosts.

It is located at ~/.ssh/known_hosts or if you want to overwrite/remove a specific ssh host then you can edit the known_hosts file.

To see all hosts => cat ~/.ssh/known_hosts Delete know_hosts file => rm -rf ~/.ssh/known_hosts

Urina answered 23/9, 2021 at 9:8 Comment(1)
The question talks about recovering the passphrase for the SSH key, and has nothing to do with the known_hosts file.Spleenful

© 2022 - 2024 — McMap. All rights reserved.