解决每次 git push 都要输入用户名

type
Post
status
Published
date
Jun 22, 2023
slug
git-ssh
summary
tags
git
Github
icon

未配置用户名和邮箱

如果每次 git push 都要输入用户名,很可能是由于没有配置 Git 的全局用户名和邮箱地址导致的。
通过 cat gitconfig 查看当前项目是否设置用户名和邮箱地址
通过下面两条命令查看是否已经设置全局用户名和邮箱地址。
如果尚未配置,将会输出空。你可以使用以下命令设置全局用户名和邮箱地址:
这样,在执行 git push 命令时,就不需要每次输入用户名和邮箱地址了。Git 会使用你配置的全局用户名和邮箱地址来作为你的身份识别信息。
如果确保已经设置了全局用户名和邮箱地址,但是每次执行 git push 都要输入用户名,那么可能是因为你在使用 HTTPS 认证方式进行Git操作。在该情况下,Git会要求输入每次进行push操作时的账号密码。为了避免每次都输入账号,你可以将认证方式改为 SSH 认证。配置 SSH 认证需要在本地生成 SSH 密钥,然后将公钥添加到远程 Git 服务器中,详情可以参考官方文档。

配置 SSH 认证

  • 首先需要生成 SSH 密钥。在 Git Bash 或者终端中输入以下命令:
  • 生成密钥时会要求输入密钥的保存路径和文件名,直接回车即可默认保存在 .ssh 目录下。
  • 生成密钥后,在 .ssh 目录中会生成两个文件:id_rsa(私钥)和 id_rsa.pub(公钥)。
  • 将公钥添加到 Git 服务商(如 GitHub、GitLab)中。以 GitHub 为例,登录 GitHub,在 Settings -> SSH and GPG keys -> New SSH key (https://github.com/settings/ssh/new)中将公钥内容粘贴进去,并取一个适当的名称。
  • 配置 Git 仓库的远程地址为 SSH 协议的 URL。例如:
    • 其中 yourusernameyourrepository 修改为你自己的用户名和仓库名。
      你仓库链接后面就是 用户名/仓库名
      notion image
这样就可以在提交代码时使用 SSH 认证了。如果您之前配置过 HTTPS 认证的话,需要将该仓库的 origin 地址修改为 SSH 协议才能生效。

如果有多个 GitHub 账户

很多时候我们会有工作和个人用两个或更多个 Github 账户,而上文所生成的密钥,一旦被第一个账户(例如工作用 GitHub 账户)使用,第二个账户(例如私人用 GitHub 账户)就无法再添加该密钥了
可为第二个账户单独生成一个密钥对
  • -t ed25519 指定了密钥类型为 ed25519。
  • -f ~/.ssh/second 指定了密钥文件的路径和名称。

© insv 2021 - 2023