📜  git push ubuntu 每次都需要提供电子邮件和密码 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:15:17.977000             🧑  作者: Mango

git push ubuntu 每次都需要提供电子邮件和密码

问题描述

在使用 git push 命令将本地分支推送到 Ubuntu 服务器时,每次都需要输入账号和密码,十分麻烦。如何解决这个问题呢?

解决方案
方案一:改变远程仓库地址协议

将远程仓库地址的协议由 https 改为 git,这样就不需要每次输入账号和密码了。

运行以下命令:

git remote set-url origin git@server.com:namespace/repo.git

其中 server.com 是远程服务器的域名,namespace/repo.git 是仓库的名称。

方案二:使用 SSH Key

使用 SSH Key 可以免除每次输入账号和密码的麻烦,同时还可以提高安全性。

1. 生成 SSH Key

在本地生成 SSH Key,运行以下命令:

ssh-keygen -t rsa -C "your_email@example.com"

其中 your_email@example.com 是你的邮箱地址。根据提示输入密码,则会在 ~/.ssh 目录下生成 id_rsaid_rsa.pub 两个文件。

2. 将公钥添加到服务器

将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中,可以使用以下命令:

cat ~/.ssh/id_rsa.pub | ssh user@server.com 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

其中 user 是服务器的用户名,server.com 是服务器的域名。

3. 修改远程仓库地址

使用 SSH 协议访问仓库,运行以下命令:

git remote set-url origin git@server.com:namespace/repo.git

其中 server.com 是远程服务器的域名,namespace/repo.git 是仓库的名称。

方案三:使用 Git Credential Manager

使用 Git Credential Manager 可以缓存账号和密码,避免每次输入。

1. 安装 Git Credential Manager

安装 Git Credential Manager,可以参考以下链接:

2. 配置 Credential Manager

运行以下命令:

git config --global credential.helper manager

3. 输入一次账号和密码

配置成功后,首次推送时输入一次账号和密码即可,以后就可以免除输入账号和密码的麻烦了。

结语

以上三种方法均可解决每次推送都需要输入账号和密码的问题,每种方法各有优劣,可以根据实际情况选择合适的方法来使用。