我在 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 推送。
# 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 密码还是我的密钥密码(我在制作公钥/私钥时会设置的密码)
谢谢
你永远不应该分享你的私钥。但是,这些应用程序希望您做的是在本地解锁您的私钥,而不是将其发送到另一台计算机。
没有 git 密码。您可能是指您的 GitHub 密码。
您可以通过您的 GitHub 帐户的用户名和密码登录。然而,使用公钥认证更容易更好。创建密钥对时,您选择了密码。这是您需要输入的密码。您可能只需要在每个会话中执行一次,因为您的 SSH 代理会为您存储它。如果在同一个会话中重复提示您输入它(会话是您登录计算机和注销之间的时间),您应该将您的密钥对添加到您的 SSH 代理:
如果您指的是 linux 中的私钥链;那么您可能必须输入您输入的“短语”,然后它才会像这样提示您