如何配置命令行git使用ssh密钥

问题描述 投票:0回答:5

当我通过命令行执行

git pull
时,它总是询问我的 github 用户名和密码。我想告诉它使用 github 中的 ssh 密钥,再也不用担心它了。你怎么做到这一点?

git authentication command-line github ssh-keys
5个回答
14
投票

要告诉 Git 使用您生成的密钥,请将以下内容添加到 ssh 配置中(在 Linux 上,通常位于

~/.ssh/config
):

Host github.com
  User git
  IdentityFile ~/.ssh/id_rsa

对于

IdentityFile
,您应该使用由
ssh-keygen
生成的密钥(而不是名称以
.pub
结尾的密钥)。
User
必须始终是
git


12
投票

假设您已使用

ssh-keygen
生成密钥对并将公钥上传到您的 github 帐户中的适当位置,您应该能够设置远程以使用 url
[email protected]:username/repo.git

git remote set-url origin [email protected]:username/repo.git

如果您没有关心的本地更改,您可以删除本地存储库并再次克隆:

git clone [email protected]:username/repo.git

这里有 github 上关于此设置的说明,您可以根据需要作为参考。


0
投票

另一种可能性是,在创建 ssh 后,您可能已将密钥移至其他文件夹。在这种情况下,

ssh-add ~/yourkeyfolder/yourkey

这将确保操作系统知道您的密钥。


0
投票

如果您使用基于 Gnome 的 Linux 桌面,例如 Ubuntu 或 Fedora,您还可以使用内置的“密码和加密”应用程序来创建和管理 SSH 密钥。要创建 SSH 密钥,只需打开应用程序,单击

+
,然后单击
SSH Key
,填写表格,输入密钥密码两次,最后将生成的公钥信息插入 GitHub。之后,
git
命令将使用此 SSH 密钥进行 SSH 连接。每个会话只需输入一次 SSH 密钥的密码。在这种情况下,无需配置
ssh-agent
或修改
~/.ssh/config
,它就可以工作。


0
投票

看了这些答案后,似乎我发现最简单的一个不包括在内。在存储库的工作目录中,您有兴趣指定特定密钥,请执行以下操作:

git config core.sshCommand 'ssh -i ~/.ssh/id_rsa'

您可以检查它是否有效(或者通过执行以下操作来查看该存储库是否存在现有的

core.sshCommand

git config --list
© www.soinside.com 2019 - 2024. All rights reserved.