如何恢复密码

时间:2014-03-18 05:12:42

标签: git ssh-keys

我已通过以下命令使用密码生成我的公钥:

ssh-keygen -t rsa -C "joy@example.com" 

但问题是我忘了它。现在每当我要git推送我的代码时,它都要求我输入密码。有什么办法可以恢复吗?否则我必须从头开始重新生成它。

2 个答案:

答案 0 :(得分:0)

您无法从公钥或私钥中恢复密码(除非使用极大的群集)。

此外,由于密钥将密码作为输入,因此无法从头开始重新生成密钥。并且密码对的哈希以某种方式在密钥对中编码。

您可以做的是生成一个新密钥(使用新密码),将ssh-agent设置为默认使用新密钥。但是,您需要访问服务器才能将新密钥复制到。

答案 1 :(得分:0)

我今天一直在测试自动化,并且意外拼错了我的一个密码短语。我只知道我盲目地写错了顺序的字母,却无法找到如何重新输入键盘。因此我用python打破了它:

#!/usr/bin/python
from itertools import permutations
from subprocess import Popen

# bruteforce misspelled passphrase
for psph in ["ps%d"% "".join(i) for i in permutations("aswor")]:
    cmd = "ssh-keygen -p -f \"/home/m-nikolaev/.ssh/id_rsa\" -P \"%s\"" % psph
    p = Popen(cmd, shell=True)
    p.wait() 

第六个排列显示我弄乱了四个相邻的键。