所以我试图git clone
a回购,我遇到:
(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.
所以我好像记不住我的密码。
两个问题:
一种方法是在git上生成一个新的个人访问令牌?
如果是这样,当我生成一个新的个人访问令牌时,我需要替换
id_rsa
文件中的私钥吗?如果是,我用什么来代替它?因为当我生成一个新的个人访问令牌时,这个个人访问令牌与id_rsa
文件中private key
的内容相比非常短。这是
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。