将git与ssh一起使用时出现的问题



每当我在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添加到每个密钥一样。

最新更新