如何避免每次推送到 github 存储库时都使用“ssh-add ~/.ssh/id_rsa”?

Man*_*oke 8 ssh git gitlab

我必须反复输入以下终端命令才能推送到远程 github 存储库。如果我推送到 github,然后在接下来的几个小时内编写更多代码,然后再推送,我必须输入以下命令:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

否则我会收到以下错误消息:

>> git push origin master

sign_and_send_pubkey:签名失败:代理拒绝操作权限被拒绝(公钥)。致命:无法从远程存储库读取。

请确保您拥有正确的访问权限并且存储库存在。

我必须做什么才能不再需要继续使用 ssh-add 才能推送?我原以为使用 ssh-add 一次可以解决问题,但似乎并非如此!

Top*_*ter 5

以下基于另一个答案

为了即使在重新启动后也不必重新填写密码,请将以下内容添加到您的 ssh 配置文件(通常位于~/.ssh/config,或Windows位于%UserProfile%/.ssh/config

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)


Mic*_*ant 0

将您的 ssh 密钥文件添加id_rsa到目录 ~/.ssh/

使用复制或移动将其放置在那里,而不是 ssh-add

这是以以下开头的私有文件:

-----BEGIN RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

如果您没有私钥文件,可能问题是您实际上需要生成它们

  • 在本地计算机上打开终端并输入以下内容:ssh-keygen -t rsa -C "your_email@example.com"...
  • 只需按下即可接受默认位置和文件名。...出现提示时输入并重新输入密码。...
  • 你完成了!

这些步骤来自https://confluence.atlassian.com/bitbucketserver/creating-ssh-keys-776639788.html

  • OP 提到“~/.ssh/id_rsa”——是什么让你认为它丢失或无效? (4认同)