Git 要求输入私钥吗?

Git 要求输入私钥吗?

我在使用 Ubuntu,正在学习如何协作使用 Git。

我已经使用以下命令在本地 Ubuntu 桌面上创建了一对公钥/私钥:

ssh-keygen -b 2048

然后我使用以下命令访问我的公钥:

cat /home/user/.ssh/id_rsa.pub

按照我在网上找到的说明,我在 GitHub 上创建了一个存储库,然后转到“设置”并添加了我的公钥。

然后我想做两件事:

1)检查我的身份验证是否与 GitHub 配合良好。我通过输入以下内容来做到这一点:

ssh -T [email protected]

我得到以下输出,我回答“是”

# The authenticity of host 'github.com (xxxx)' can't be established.
# RSA key fingerprint is xxxxx.
# Are you sure you want to continue connecting (yes/no)? Yes

然后我收到一个弹出窗口,上面写着:

An application wants to access the private key "user@ubuntu" but it is locked. 
It then asks for a password.

2)执行 Git push 到我新创建的远程存储库。

# First, I connect my local repository to my remote GitHub one (this works)
$ git remote add origin [email protected]:username/repository_name.git

# Next, I try and push my local commits to the repository_name:
$ git push origin master

然后我得到与 1) 中相同的弹出窗口,要求访问我的私钥和密码。

我的问题是:

  • 这是正常的吗?我对公钥/私钥和快速认证的概念很陌生,但我认为我永远不应该分享我的私钥?那么 Git 为什么要求这样做呢?

  • 如果我需要提供它,Git 会要求我输入 Git 密码还是密钥密码(我在制作公钥/私钥时设置的密码)

谢谢

答案1

这是正常的吗?我对公钥/私钥和快速认证的概念很陌生,但我认为我永远不应该分享我的私钥?那么 Git 为什么要求这样做呢?

你永远不应该分享你的私钥。然而,这些应用程序希望你在本地解锁你的私钥,而不是将其发送到另一台计算机。

如果我需要提供它,Git 会要求我输入 Git 密码还是密钥密码(我在制作公钥/私钥时设置的密码)

没有 git 密码。你可能指的是你的 GitHub 密码。

您可以通过 GitHub 帐户的用户名和密码登录。但是,使用公钥身份验证更简单、更好。创建密钥对时,您选择了一个密码。这是您需要输入的密码。您可能只需要在每个会话中执行一次此操作,因为您的 SSH 代理会为您存储它。如果在同一会话中反复提示您输入密码(会话是指您登录计算机和注销之间的时间),您应该将密钥对添加到 SSH 代理中:

ssh-add ~/.ssh/id_rsa

答案2

如果你指的是 Linux 中的私钥链;那么你可能必须输入你在它提示你之前输入的“短语”,就像这样

输入密码再次输入相同的密码:

相关内容