Ubuntu记住git账号密码

1: cd 回车;进入当前用户目录下;

  2: vim .git-credentials (如果没有安装vim 用其它编辑器也可以或 sudo apt-get install vim 安装一个)

  3:按照以下格式输入内容:

  https://{username}:{password}@github.com

  其中username,password,github.com 都换成你自己的内容

  4:保存退出后执行下面命令

  git config --global credential.helper store

  执行完后

  /home/用户名/.gitconfig 会新增一项

  helper = store

  这是再执行git push/pull的时候就不会在要求你输入密码了。

  当然,还有一种方式就是在git clone 的时候,不用https://的形式,而用git@git (ssh)的形式。这种方式也可以避免每次都要输密码。

<think>嗯,用户想要在Linux系统上配置Git的SSH密钥。从用户提供的参考资料来看,ta应该已经看过Windows和macOS的相关说明,现在需要Linux的指导。用户可能是个开发者,正在搭建Linux开发环境,或者准备在服务器上部署代码。注意到参考资料里给出了ssh-keygen的基本用法,但用户特别强调是Linux环境,所以需要补充Linux特有的细节。比如权限管理(600权限)、密钥存放路径(~/.ssh/),以及可能遇到的selinux问题。用户没有提到具体Git平台(GitHub/GitLab等),所以需要给出通用方案。但可以提示平台差异,比如GitHub要求公钥标题不能包含#号等特殊字符(从引用[1][2][4]看用户邮箱是用#号注释的,需要提醒)。另外,引用[3]提到多账号配置,引用[5]提到客户端整合,虽然用户当前问题集中在密钥生成,但可以预判下一步需求。所以回答里要包含:密钥生成(核心需求)->添加公钥到平台(必要步骤)->多密钥管理(延伸需求)->客户端测试(验证环节)的完整链条。特别注意引用[4]提到默认路径处理,Linux和macOS相似,但用户可能不熟悉波浪号~代表家目录的概念,需要明确写成/home/用户名/。还有权限设置chmod600这些Windows不需要但Linux必备的操作。最后补充Git配置环节(引用[3][5]),因为生成密钥后必须关联到Git。这里要区分全局配置和项目级配置,避免用户混淆。测试部分强调ssh-T验证,比gitpull/push更安全直观。</think> 好的,在Linux系统中为Git配置SSH密钥主要涉及以下几个步骤,整个过程在终端中完成: ### 📌 步骤 1: 生成 SSH 密钥对 (如果还没有) 1. **打开终端。** 2. **输入生成密钥的命令:** ```bash ssh-keygen -t rsa -b 4096 -C "你的邮箱地址@example.com" # 引号里换成你在Git服务(GitHub/GitLab等)注册的邮箱 ``` * `-t rsa`: 指定密钥类型为 RSA(现在推荐4096位或Ed25519)。 * `-b 4096`: 指定密钥长度为 4096 位(更安全)。 * `-C "[email protected]"`: 提供一个注释,通常是你的邮箱📧,方便标识密钥所有者。这个注释会嵌入在公钥文件的末尾。[^1][^2][^4] 3. **保存密钥文件:** * 系统会提示你输入保存密钥对的文件路径。 ``` Enter file in which to save the key (/home/你的用户名/.ssh/id_rsa): ``` * **强烈建议按 `Enter` 键使用默认路径 (`~/.ssh/id_rsa`)。** 这是SSH客户端寻找私钥的标准位置,后续配置会更简单。[^4] 4. **设置密钥密码 (可选但推荐):** * 系统会提示: ``` Enter passphrase (empty for no passphrase): ``` * 输入一个安全密码并确认。这为私钥增加了一层保护。每次使用私钥时都需要输入此密码(也可以通过 ssh-agent 管理,见步骤 3)。 * 如果不想设置密码,直接按 `Enter` 两次。 5. **完成生成:** * 命令执行后,你会在屏幕上看到类似的信息,显示密钥的指纹和随机艺术图案: ``` Your identification has been saved in /home/你的用户名/.ssh/id_rsa Your public key has been saved in /home/你的用户名/.ssh/id_rsa.pub The key fingerprint is: SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 你的邮箱地址@example.com The key's randomart image is: +---[RSA 4096]----+ | | ... (图形) ... | | +----[SHA256]-----+ ``` ### 🔐 步骤 2: 确保 SSH Agent 运行并添加私钥 (可选,简化使用) SSH Agent 是一个在后台运行的程序,用于管理SSH私钥。添加后,输入一次密码后即可记住,无需每次使用都输入密码。 1. **启动 SSH Agent:** ```bash eval "$(ssh-agent -s)" ``` * 这会输出代理的进程ID (PID),例如 `Agent pid 12345`。 2. **将你的私钥添加到 SSH Agent:** ```bash ssh-add ~/.ssh/id_rsa # 如果使用了默认路径和文件名 ``` * 如果你在生成密钥时指定了不同的文件名或路径,请将 `~/.ssh/id_rsa` 替换为你的私钥文件的实际路径。 * 如果你设置了密码,系统会提示你输入一次。 * 成功后会显示 `Identity added: /home/你的用户名/.ssh/id_rsa (你的邮箱地址@example.com)`。 > **注意:** 如果使用了非默认密钥,需要在 Git 操作时指定私钥(可参考 `core.sshCommand` 配置),但在配置好 `ssh-agent` 并使用默认密钥位置的情况下通常不需要。 ### 📤 步骤 3: 将公钥添加到你的 Git 托管服务 (GitHub, GitLab, Gitee 等) 这一步至关重要,让远程服务器认识你本地的公钥。 1. **复制公钥内容:** * 使用 `cat` 命令查看并复制公钥文件内容 (`id_rsa.pub`): ```bash cat ~/.ssh/id_rsa.pub ``` * 公钥文件内容类似这样:`ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDeq4w...很长一串... [email protected]` * **完整选中并复制** 终端中输出的全部内容(从 `ssh-rsa` 开始,到你的邮箱结束)。**非常重要:不能有空格缺失或多余字符。** * 或者,你也可以用鼠标右键复制。使用 `xclip` 可以更方便地将公钥直接复制到剪贴板(如果已安装): ```bash xclip -sel clip < ~/.ssh/id_rsa.pub # Ubuntu/Debian等通常需要先安装xclip: `sudo apt install xclip` ``` 2. **登录到你的 Git 服务网站 (如 GitHub, GitLab, Gitee):** 3. **找到添加 SSH Key 的地方:** * **GitHub:** 点击右上角头像 -> `Settings` -> 侧边栏 `SSH and GPG keys` -> `New SSH key`. * **GitLab:** 点击右上角头像 -> `Preferences` -> 左侧 `SSH Keys`. * **Gitee:** 点击右上角头像 -> `设置` -> `SSH公钥`. 4. **添加公钥:** * **Title/标题/备注:** 起一个你能识别的名字(如 `Home Linux Laptop`, `Work Desktop`)。 * **Key Type/类型:** 通常保持默认的 `Authentication Key` (认证密钥)。 * **Key/公钥:** 将你刚刚复制的整个公钥字符串粘贴到这个输入框中。 * **确认添加/保存。** 有些平台可能要求你输入账户密码再次确认。 ### ⚙ 步骤 4: 测试 SSH 连接是否成功 这是验证你配置是否正确的关键一步。 ```bash ssh -T git@github.com # 测试连接到 GitHub # 或者 ssh -T git@gitlab.com # 测试连接到 GitLab # 或者 ssh -T git@gitee.com # 测试连接到 Gitee # ... 用你对应的服务地址 ``` * **第一次连接**:会看到关于主机真实性的警告 (RSA key fingerprint)。如果你信任该主机(像 GitHub/GitLab 这种大型服务一般可信),请输入 `yes` 并回车将其加入到你的已知主机列表 (`~/.ssh/known_hosts`)。 * **成功的连接:** * **GitHub:** 如果提示中包含你的 GitHub 用户名,表示成功。类似:`Hi username! You've successfully authenticated, but GitHub does not provide shell access.` * **GitLab:** 类似:`Welcome to GitLab, @username!` * **Gitee:** 类似:`You've successfully authenticated, but GITEE.COM does not provide shell access. Welcome to Gitee.com, Your Name!` * **失败连接:** 如果提示 `Permission denied (publickey)`,请仔细检查上述所有步骤,尤其是公钥是否正确复制粘贴到服务器、私钥是否加载到代理(或使用正确路径)、文件权限是否正确(下一步)。 ### 🔒 (重要!) 步骤 5: 检查和设置正确的文件权限 (Linux 安全要求) SSH 对密钥文件的权限要求非常严格,权限过大可能会导致 SSH 拒绝工作。 1. **检查 `.ssh` 目录权限:** 它应该是 `700` (drwx------) ```bash ls -ld ~/.ssh # 输出应类似 drwx------ 2 username username 4096 月 日 时间 /home/username/.ssh ``` 如果权限不对,修复: ```bash chmod 700 ~/.ssh ``` 2. **检查私钥文件 (`id_rsa`) 权限:** 它必须是 `600` (-rw-------) ```bash ls -l ~/.ssh/id_rsa # 输出应类似 -rw------- 1 username username 3381 月 日 时间 /home/username/.ssh/id_rsa ``` 如果权限不对,修复: ```bash chmod 600 ~/.ssh/id_rsa ``` 3. **检查公钥文件 (`id_rsa.pub`) 和其他配置文件权限:** 可以是 `644` (-rw-r--r--) ```bash ls -l ~/.ssh/id_rsa.pub # 确保至少所有者有读写权限 chmod 644 ~/.ssh/id_rsa.pub # 如果需要设置权限 ``` 配置文件如 `config`: ```bash chmod 644 ~/.ssh/config # 如果需要设置 ``` ### 🔧 步骤 6: 配置 Git 使用 SSH (通常是默认设置) 完成 SSH 密钥配置并成功测试连接后,Git 在克隆、推送、拉取时就会自动尝试使用配置好的 SSH 密钥。**大多数情况下不需要额外配置 Git 本身。** * **克隆仓库时使用 SSH URL:** 确保你克隆仓库时使用的是仓库的 **SSH URL**(格式如 `git@github.com:username/repo.git`),而不是 HTTPS URL(格式如 `https://github.com/username/repo.git`)。 * **如果使用了非默认密钥路径或需要额外参数:** 你可能需要像引用 [3] 中提到的那样配置 Git 来指定 `ssh` 命令。但 **使用默认位置 (`~/.ssh/id_rsa`)** 并配置好 `ssh-agent` 的情况下,**绝大多数情况不需要这个额外配置**。如果确实需要(例如管理多个密钥对),可以使用: ```bash git config [--global] core.sshCommand "ssh -i /path/to/your/private/key" ``` ### ✅ 完成 完成以上步骤后,你在Linux系统上的Git就已经成功地配置了SSH密钥认证。现在你应该能够克隆SSH协议的仓库,以及向远程仓库推送或拉取代码,而无需每次都输入GitHub/GitLab等的账号密码。SSH协议也更加安全高效。 --- **
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值