当我通过命令行执行git pull
时,它总是要求输入我的GitHub用户名和密码。我想告诉它使用GitHub中的ssh密钥,并且永远不用再担心这个问题。您该如何处理?
当我通过命令行执行git pull
时,它总是要求输入我的GitHub用户名和密码。我想告诉它使用GitHub中的ssh密钥,并且永远不用再担心这个问题。您该如何处理?
如果要让Git使用你生成的密钥,请将以下内容添加到你的ssh配置文件中(在Linux上,通常位于~/.ssh/config
):
Host github.com
User git
IdentityFile ~/.ssh/id_rsa
对于IdentityFile
,您应该使用由ssh-keygen
生成的密钥(而不是名称以.pub
结尾的密钥)。User
必须始终为git
。
id_ed25519
不同的名字,并且设置了密码保护,所以这两个因素中的一个或者两个导致我的 Github 密钥没有自动添加到代理中。现在,如果我执行 git pull
这样的操作,它会提示我输入密码,然后将密钥添加到代理中!谢谢! - undefinedssh-keygen
生成了一对密钥,并将公钥上传到您的GitHub账户的适当位置,那么您应该能够将远程设置为使用URL git@github.com:username/repo.git
。git remote set-url origin git@github.com:username/repo.git
git clone git@github.com:username/repo.git
另一种可能性是,在创建ssh之后,您可能已将密钥移动到不同的文件夹中。在这种情况下,
ssh-add ~/yourkeyfolder/yourkey
这将确保操作系统知道您的密钥。
git config core.sshCommand 'ssh -i ~/.ssh/id_rsa' #specific private key
core.sshCommand
)通过执行以下操作:git config --list
git@github...
而不是https://...
。 - Chrisorigin
,并且你有一个相对较新的 Git 版本,运行git remote set-url origin git@github...
和git remote set-url --push origin git@github...
。从 GitHub 上通过点击克隆 URL 的 SSH 链接获取git@github...
部分。如果这样还不行,你可能需要 (a) 在 GitHub 上添加第二个密钥,或者 (b) 让你的命令行git
知道你在 IDE 中使用的密钥。 - Chris