【问题标题】:SSH key using Git使用 Git 的 SSH 密钥
【发布时间】:2021-06-06 17:55:49
【问题描述】:

我是 GitHub 的新手,在关注 this tutorial 之后,我正在尝试了解 SSH 密钥。

我已经创建了一个密钥并将其添加到我的帐户中。目前我只有几个测试存储库,我在本地克隆它们。

现在,问题是,即使我没有设置我的ssh-agent(或者我从 GitHub 中删除了所有密钥),我仍然可以更新我的存储库并推送给它们。

我唯一不能用经过验证的密钥做的事情是使用 SSH 链接(例如 git@github.com:username/repository.git)克​​隆存储库,但我仍然可以使用 https 链接(例如 https://github.com/username/repository.git)克隆并推送到存储库。

我最初thought 允许使用 https 进行克隆,但我无法推送,但我什至可以推送,并且它不会询问任何用户名密码!

那么,如果任何人仍然可以使用经过验证的密钥执行相同的操作,那么 SSH 密钥的用途是什么? 是不是和权限有关系?

【问题讨论】:

  • 您必须输入您的 GitHub 密码才能推送到存储库,不是吗?就克隆而言,GitHub 存储库是公开的。
  • 如果你不需要密码来推送,可能密钥仍然被缓存。
  • @mkrieger1 它不问我任何密码...
  • 如何取消缓存以进行验证?

标签: git github ssh repository push


【解决方案1】:

但我仍然可以使用 https 链接(例如 https://github.com/username/repository.git)克隆并推送到存储库。

使用 HTTPS 时,您不会使用任何 SSH 密钥,只使用缓存的凭据(GitHub 帐户用户名/密码),这将由 git 凭据助手 (git config credential.helper) 提供

printf "protocol=https\nhost=github.com"|git credential-xxx erase

git config credential.helper返回的助手替换xxx

【讨论】:

  • 那么 GitHub 不询问我任何凭据的原因可能是因为帮助的凭据可能已经配置好了?
  • @Prelli 仅当您使用 HTTPS URL 时,才可以。
猜你喜欢
  • 2023-01-05
  • 2014-01-18
  • 2012-09-06
  • 2012-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-25
相关资源
最近更新 更多