我需要改变id_rsa文件私钥时,生成一个新的个人访问令牌git的passsphrase ?



所以我试图git clonea回购,我遇到:

(py38-stable) user@jupyter:~/local$ git clone git@github.com:user/user2.git
Cloning into 'user2'...
Warning: Permanently added the ECDSA host key for IP address '140.82.223.2' to the list of known hosts.
Enter passphrase for key '/home/user/.ssh/id_rsa': 
Enter passphrase for key '/home/user/.ssh/id_rsa': 
Enter passphrase for key '/home/user/.ssh/id_rsa': 
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

所以我好像记不住我的密码。

两个问题:

  1. 一种方法是在git上生成一个新的个人访问令牌?

  2. 如果是这样,当我生成一个新的个人访问令牌时,我需要替换id_rsa文件中的私钥吗?如果是,我用什么来代替它?因为当我生成一个新的个人访问令牌时,这个个人访问令牌与id_rsa文件中private key的内容相比非常短。

  3. 这是Personal Access Token密码短语吗?还是其他原因?

让我们首先了解基础知识:

  • 您可以通过ssh或https连接到GitHub repos
  • 为了通过ssh连接到GitHub仓库,你需要一个ssh密钥对和可能的密码短语:
    • 私钥(只有你知道,永远不要与任何人分享)
    • 公钥(这是密钥中可以共享的部分)
    • (可选)密码短语
  • 为了连接到GitHub仓库通过
    • 用户名,密码
    • 个人访问令牌

所以,passphrase是为了进一步保护您的ssh密钥和个人访问令牌是https认证的令牌。

现在,如果您已经生成了一个ssh密钥对,但是您忘记了它的密码,那么就没有办法恢复它。您可以生成一个新的ssh密钥对,带或不带密码短语。如果您生成一个带有密码短语的密码,请确保您不会忘记它。

如果您想拥有ssh密钥并将其用于身份验证,那么您的公钥将需要在~/.ssh/authorized_keys文件中以新行结束(在这里查看更多信息)

否则,您也可以切换到使用https协议,并使用用户名/密码或个人访问令牌进行身份验证。使用个人访问令牌而不是用户名/密码身份验证的好处是,如果出于任何原因,有人能够跟踪或发现您的身份验证方式,那么泄露的信息将"只会";作为个人访问令牌,你可以使你的用户失效,而不是失去对你的GitHub用户的访问权限(如果黑客成功地将你从你自己的帐户中锁定)。

如果你有权限访问你的用户,你有你需要一个repo的权利,那么你应该能够生成一个新的ssh密钥,一个个人访问令牌为您的https连接或使用不推荐的用户名/密码身份验证repos。