每当我在PC上启动会话并尝试git fetch
我的远程存储库时,我都会收到以下错误:
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
那么,我每次所做的就是执行以下命令:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_github
ssh -i ~/.ssh/id_rsa_github -T git@github.com
一旦我执行了上面的命令,git fetch
终于可以正常工作了。但是,我不想每次打开电脑时都重复同样的步骤。我该如何解决这个问题?我已经尝试过将这三个命令放在~/.bashrc
中,但都不起作用。
如果你想知道的话,我已经在我的GitHub帐户中添加了一个SSH密钥,粘贴了公钥~/.ssh/id_rsa_github.pub
的内容,但我仍然有这个问题。
添加
host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa_github
到您的ssh配置文件(位于~/.ssh/config
(
如果要单独指定每个git repo的标识,可以修改该特定repo的ssh命令:
git config core.sshCommand 'ssh -i ~/.ssh/id_rsa_github'
(从git存储库目录中运行此命令(
每次启动会话时,密钥似乎都会丢失。您需要将密钥永久添加到您的代理中。有关永久添加密钥的参考,您可以查看以下链接-https://stackoverflow.com/a/4246809/12680971
环境变量SSH_AUTH_SOCK将在SSH代理启动时设置。因此,在.bashrc中这样做是个好主意:
[ -z "$SSH_AUTH_SOCK" ] && eval "$(ssh-agent -s)"
如果还没有运行,这将在后台启动一个新的ssh代理。
此外,在~/.ssh/config文件中,应该有这样的内容:
AddKeysToAgent yes
这应该将所有加载的密钥添加到ssh代理中,就好像您在运行ssh添加到每个密钥一样。