当前位置: 首页 > news >正文

MacOS + Android Studio:将 Git 仓库从 HTTP 切换为 SSH 并解决权限问题

        在日常开发中,使用 Android Studio 顶部的 Git 菜单进行 FetchPull 操作时,如果远程仓库是 HTTP 协议,可能会遇到提示:“Add GitLab Account”。而终端中使用 git fetch origin 却正常。

        本文记录了我在 macOS 上将 Git 仓库从 HTTP 切换为 SSH,并解决 SSH 权限问题的完整过程。


问题背景

  • Android Studio 中执行 Git → Fetch 时,弹出“Add GitLab Account”对话框

  • 终端中执行 git fetch origin 正常

  • 查看当前 Git 远程地址:

git remote -v

输出如下:

origin  http://git.example.com/yourname/yourrepo.git (fetch)
origin  http://git.example.com/yourname/yourrepo.git (push)

说明:IDE 在使用 HTTP 协议时需要额外认证,而终端使用 SSH 时则通过 SSH key 自动完成认证。


目标:将远程地址从 HTTP 切换为 SSH,统一终端与 IDE 行为


步骤 1:获取 SSH 地址

打开你项目所在的 Git 服务平台(如 GitLab),点击 "Clone" 按钮,选择并复制 SSH 格式的地址,例如:

git@git.example.com:yourname/yourrepo.git

步骤 2:修改远程地址为 SSH

在项目目录下执行:

git remote set-url origin git@git.example.com:yourname/yourrepo.git

验证是否修改成功:

git remote -v

输出应为:

origin  git@git.example.com:yourname/yourrepo.git (fetch)
origin  git@git.example.com:yourname/yourrepo.git (push)

步骤 3:检查或创建 SSH 密钥

查看是否已有密钥:

ls ~/.ssh

如果存在 id_ed25519id_ed25519.pub,说明已有密钥。

若没有,执行以下命令创建:

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

一路回车即可,默认生成在 ~/.ssh/id_ed25519


步骤 4:将私钥添加到 ssh-agent

先启动 ssh-agent:

eval "$(ssh-agent -s)"

然后添加私钥:

ssh-add ~/.ssh/id_ed25519

输出应类似:

Identity added: /Users/yourname/.ssh/id_ed25519 (your_email@example.com)

步骤 5:将公钥添加到 Git 服务器

查看公钥内容:

cat ~/.ssh/id_ed25519.pub

然后:

  • 登录你的 Git 服务器(如 git.example.com

  • 打开:User SettingsSSH Keys

  • 将公钥粘贴进去并保存


步骤 6(可选):配置 SSH config 文件(支持多个 key)

编辑 SSH 配置文件:

nano ~/.ssh/config

添加如下内容:

Host git.example.comHostName git.example.comUser gitIdentityFile ~/.ssh/id_ed25519

保存并退出。


步骤 7:测试 SSH 是否连通

运行:

ssh -T git@git.example.com

成功时输出类似:

Welcome to Git Server, @yourname!

如果仍然出现 Permission denied (publickey) 错误,请重新检查:

  • SSH key 是否添加到服务器

  • 私钥是否被加载进 ssh-agent

  • ~/.ssh/config 是否正确配置


验证 Android Studio 是否生效

回到 Android Studio:

  • 点击 Git → Fetch

  • 如果未再提示“Add GitLab Account”,说明 SSH 已成功生效


总结

        通过将 Git 仓库从 HTTP 切换为 SSH,并正确配置本地 SSH 密钥与 IDE,我们可以避免每次拉取/推送时反复输入账号密码或 token,提高开发效率。

        这种方式更安全、稳定,特别适合日常开发与自动化部署场景。

相关推荐

Android开发者必看:本地项目上传GitHub与Android Studio高效Git操作指南-CSDN博客文章浏览阅读1.5k次,点赞35次,收藏26次。本文为Android开发者详细解析如何将本地项目上传至GitHub,并结合Android Studio的图形化工具实现高效的Git操作。首先,通过GitHub创建仓库、初始化本地Git、关联远程仓库、提交并推送代码,完成项目的云端托管,确保代码的安全性与团队协作便捷性。其次,重点介绍Android Studio内置的Git功能,包括仓库初始化、克隆远程项目、提交与推送更改、拉取远程更新、分支管理及冲突解决等核心操作,简化开发者对版本控制的日常使用。_android studio上传项目到git https://shuaici.blog.csdn.net/article/details/146255074Android Studio Logcat 使用指南:从入门到高级技巧-CSDN博客文章浏览阅读984次,点赞42次,收藏29次。本文介绍了Android开发中Logcat日志工具的使用方法,包括基本操作、日志级别(VERBOSE到ASSERT)、筛选技巧(按Tag、包名、进程ID等)、高级组合查询(逻辑运算符和正则表达式),以及日志保存和ADB命令等实用技巧。帮助开发者更高效地调试应用,快速定位崩溃和错误日志。_android studio 日志等级 https://shuaici.blog.csdn.net/article/details/149364386

http://www.dtcms.com/a/347092.html

相关文章:

  • VLOOKUP专题训练
  • 【Win】Motrix+Aria2浏览器下载加速
  • DeepSeek V3.1 横空出世:重新定义大语言模型的边界与可能
  • Qt5 项目的构建与部署详细讲解
  • 【Android】Fragment生命周期详解
  • 链表漫游指南:C++ 指针操作的艺术与实践
  • 【RK3576】【Android14】Android平台跟文件系统
  • PostgreSQL表分区与复杂查询性能优化实践指南
  • 【AI基础:神经网络】17、神经网络基石:从MP神经元到感知器全解析 - 原理、代码、异或困境与突破
  • 当 /etc/sysctl.d/ 目录下存在多个配置文件且配置项冲突时最终会使用哪个配置项
  • 嵌入式linux开发板 IP配置
  • Redis配置与数据类型详解及缓存优化实践
  • 使用VLLM部署大模型embedding/chat 的API
  • 秋招面试准备
  • Git的下载安装和使用以及和IDEA的关联
  • PLECS 中使用 C-Script 来模拟 NTC 热敏电阻(如 NTC3950B)
  • Spring Boot 校验分组(Validation Groups)高级用法全指南
  • 从词源和输出生成等角度详细解析PHP中常用文件操作类函数
  • Mac简单测试硬盘读写速度
  • 计算机网络 TLS握手中三个随机数详解
  • 鸿蒙应用网络开发实战:HTTP、WebSocket、文件下载与网络检测全攻略
  • Ubuntu 操作系统深度解析:从入门到精通(2025 最新版)
  • AP5414 LED驱动芯片:高效灵活,专业级照明解决方案
  • 20250823解决荣品RD-RK3588-MID核心板的底板的adb不通
  • Unity其他--【MMD】如何在Unity中制作MMD
  • Go数据结构与算法-常见的排序算法
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘arviz’问题
  • Boost.Asio 库中的 async_read_some用法
  • JAVA核心基础篇-操作符
  • 嵌入式LINUX——————网络TCP