尽管设置了 ssh,为什么在推送时提示输入用户名?

Why prompted for username when pushing despite having set up ssh?

我很困惑,在推送时,总是提示我输入用户名和密码,但我已经设置了一个 public 密钥。

我可以使用ssh -T git@github.com成功登录。

更奇怪的是,在我的笔记本电脑(我首先设置的笔记本电脑)上,我可以通过单击 "use ssh" 或 https 通过 ssh 克隆一个存储库。在我的塔上(有问题)只有 https。

它说 "Use git or checkout with SVN using the web URL"

我在塔上有一个 ssh 服务器 运行 但没有监听端口 22,因为我从路由器转发了一个端口并且更喜欢使用非标准端口,这可能是问题所在吗?如果这确实是问题所在,我如何让 ssh 服务器在两个端口上侦听?

在 GitHub 上设置 SSH 并不会神奇地使您的所有连接都使用 SSH。您可能希望通过 SSH 连接到某些远程设备,而通过 HTTPS 连接到一些远程设备。您的遥控器可能配置为使用 HTTPS。

您可以使用 git remote -v 查看您的遥控器使用的 URL,例如

$ git remote -v
origin  https://github.com/github/hub.git (fetch)
origin  https://github.com/github/hub.git (push)

git remote set-url <remote> <new-url> 将它们更新到 SSH URL,例如

$ git remote set-url origin git@github.com:github/hub.git
origin  git@github.com:github/hub.git (fetch)
origin  git@github.com:github/hub.git (push)