Bitbucket SSH 访问设置指南

Bitbucket SSH 访问设置指南

要通过 SSH 访问 Bitbucket git 仓库,您需要设置 SSH 密钥。这个操作每台机器和用户账户只需设置一次。以下是详细的设置步骤和注意事项:

一、检查并创建 .ssh 目录

  1. 检查 .ssh 目录‌:
    • 在 Windows 上,您可以在资源管理器的地址栏中输入 %USERPROFILE%\.ssh 并按回车来检查这个目录是否存在。
    • 如果不存在,您需要手动创建它。

二、生成 SSH 密钥对

  1. 运行 ssh-keygen 命令‌:
    • 打开您选择的终端(如命令提示符、PowerShell 或 Git Bash)。
    • 执行以下命令生成新的 SSH 密钥对:
       

      bashCopy Code

      ssh-keygen -t ed25519 -f "%USERPROFILE%\.ssh\id_ed25519"

    • 如果已存在同名文件,系统会提示是否覆盖,按提示操作即可。
    • 按回车确认每个提示(包括密码设置,可选),这将创建两个文件:id_ed25519(私钥)和 id_ed25519.pub(公钥)。

三、配置 SSH 代理(如适用)

  • 如果您的机器在特定企业网络内(如博世企业网络 BCN),您可能需要配置特殊代理。
  • 检查 %HOMEDRIVE%%HOMEPATH%\.ssh\config%USERPROFILE%\.ssh\config 文件是否存在,并根据需要创建和配置。
  • 示例配置内容:
     

    bashCopy Code

    Host bitbucket.etas-dev.com HostName sproxy100.fe.internet.bosch.com IdentityFile ~/.ssh/id_ed25519

四、将公钥添加到 Bitbucket

  1. 打开公钥文件‌:
    • 使用文本编辑器打开 id_ed25519.pub 文件。
  2. 复制公钥内容‌。
  3. 登录 Bitbucket‌ 并导航到 “管理账户 > SSH 密钥 > 添加密钥”。
  4. 粘贴公钥内容‌ 并保存。

五、验证 SSH 设置

  • 在终端中运行以下命令,验证 SSH 设置是否正确:

    ssh -T git@bitbucket.etas-dev.com

  • 如果设置正确,您应该会看到欢迎信息。

六、克隆仓库

  • 在 Bitbucket 中导航到相应的项目,点击 “克隆” 按钮,复制 SSH URL。
  • 使用该 URL 通过您的本地 git 客户端克隆仓库。

七、常见错误及解决办法

  1. “无法解析主机名” 错误‌:

    • 检查 HOME 目录的环境变量设置是否正确。
    • 在 Windows 上,可以通过设置用户级别的 %HOME% 环境变量来更改 Home(~)目录。
  2. “所有者或权限错误”‌:

    • 检查 .ssh 文件夹的文件权限,确保私钥文件权限正确。
  3. 密码不匹配‌:

    • 在设置 SSH 密钥密码时,确保两次输入的密码一致。
  4. 使用正确的 SSH 客户端‌:

    • 在 Windows 上,Git 可以在任何 shell 中工作,不必局限于 Git Bash。
  5. 避免使用 HTTPS‌:

    • 使用 SSH 而不是 HTTPS 进行 git 操作,以避免密码更改导致的连接失败。
  6. 不要复制多个 SSH 密钥‌:

    • 如果使用多台机器,最好将第一台机器的 SSH 密钥复制到所有其他机器上,而不是在每台机器上创建新的密钥。

https://bitbucket.etas-dev.com/projects/VRTE/repos/etas_vos_vrte/browse

https://confluence.etas-dev.com/display/ETASDEVU/SSH+Git+Access+to+Bitbucket

要通过 SSH 访问 Bitbucket git 仓库,您需要设置 SSH 密钥。这个操作每台机器和用户账户只需设置一次。

常见错误

  • 如果您有多台机器,最好是将第一台机器的 .ssh 文件夹内容复制到所有其他机器,而不是在每台机器上创建新的密钥。SSH 密钥是您的身份,同一个开发者没有必要注册5个身份。
  • 如果您的团队使用 Artifactory 作为 Git LFS 后端,则必须创建 RSA 密钥,并在本地 SSH 客户端启用 RSARSA 在现代 SSH 客户端中已被弃用,但目前是唯一在 Bitbucket Artifactory 中都能良好工作的算法。请参阅后面关于 Artifactory 配置的段落。
  • 如果您的团队不使用 Artifactory 作为 Git LFS 后端,则可以(也应该)使用椭圆曲线密码学,页面剩余部分将其称为“ed25519”
  • 如果有人告诉您在 Windows 中的命令行中运行某些 git 命令必须使用 git bash,那是错误的。Windows 版本的 Git 在任何 shell 中都能很好地工作,因此使用您习惯的(cmdPowershellWindows Terminal 等)。
  • 不要使用基于 HTTPS URL 与我们的 Bitbucket 服务器通信。克隆时可以选择 SSH HTTPS,但真正值得的是正确配置 SSH 设置。当您的密码更改时,HTTPS 连接将失败,而且可能很难找到存储过时密码的位置。
  • 如果您已添加如下所示的 ssh 配置,但仍然看到无法解析主机名 bitbucket.etas-dev.com:名称或服务未知,那么您应该检查 git 认为您的用户主目录(~)在哪里。要强制 git 使用 C:/users/<username>/ 作为主目录,您可以设置 HOME 用户变量。在 Git Bash 中,可以通过在 Windows 中设置用户级别的 %HOME% 环境变量来更改 Home~)目录。这是相当安全的,因为 %HOME% 环境变量通常不会为 Windows 应用程序设置,因此创建它不会影响其他任何东西。在 PowerShell 中运行: [Environment]::SetEnvironmentVariable(“HOME”, $env:userprofile, “User”)
  • 之后您必须关闭终端并启动一个新的。否则当前终端进程的环境变量仍然是旧值。
  • *.pub 文件不是 MS Publisher 文件。只能用文本编辑器打开。
  • OpenSSH 的不同版本默认启用了不同的加密算法。例如,在一些较新版本的 OpenSSH 中,小密钥大小的 RSA 算法已被弃用,而在较旧版本中是启用的。这可能导致以前工作的 SSH 密钥不再工作。在切换不同版本的 SSH 或在 Bitbucket Artifactory 升级后(因为它们可能在升级过程中在服务器端禁用了一些以前使用的算法),也可能出现同样的情况。
  • 根据您是通过 VPN 连接还是直接在 Bosch 网络(在办公室)中,git SSH 可能会使用两个不同的目录来查找您的配置文件。在此页面上搜索其他关于 HOME USERPROFILE 的引用以获取更多信息。
  • 没有单一的特殊代理,而是有几个(取决于应用程序)。因此,如果您从其他地方复制一些配置,请确保您使用正确的特殊代理。
  • SSH 配置文件的名称就是“config”。不是 config.txt,也不是 .config 等。
  • 如果您在尝试通过 SSH 连接时看到类似所有者或权限错误的错误,请检查此页面上的步骤:检查 .ssh 文件夹的文件权限。

  1. 确保.ssh目录存在于您的用户目录中。在Windows上,您可以在资源管理器的地址栏中输入%USERPROFILE%\.ssh并按回车来检查这个目录是否存在。如果不存在,您需要手动创建它。
  2. 当运行ssh-keygen命令时,您可以指定一个完整的路径来保存密钥,以确保它们被保存在正确的位置。例如:
  3. ssh-keygen -t ed25519 -f "%USERPROFILE%\.ssh\id_ed25519"

这将提示您在%USERPROFILE%\.ssh目录下保存密钥。

  1. 如果您不想设置密码,直接按回车键跳过密码输入步骤。如果您选择设置密码,确保输入一个您能记住的密码,并且两次输入要一致。

IIU4SGH@SGH-C-000UQ MINGW64 /c/Users/iiu4sgh/Desktop/work_place/VRTE_Git_Folder/etas_vos_vrte (master)

$ ssh-keygen -t ed25519 -f "C:\Users\iiu4sgh\.ssh\id_ed25519"

Generating public/private ed25519 key pair.

C:\Users\iiu4sgh\.ssh\id_ed25519 already exists.

Overwrite (y/n)? y

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Passphrases do not match.  Try again.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in C:\Users\iiu4sgh\.ssh\id_ed25519

Your public key has been saved in C:\Users\iiu4sgh\.ssh\id_ed25519.pub

The key fingerprint is:

SHA256:UTQ3jB6rlcUtOAgDEgtLSYwklfGVgQIi1LlJ5hz315g IIU4SGH@SGH-C-000UQ

The key's randomart image is:

+--[ED25519 256]--+

|%BB+oo=+ o+=o.   |

|*=oX.o....=o=..  |

|. *.* . ..+* .   |

|   =   . E=.     |

|        So       |

|        .        |

|                 |

|                 |

|                 |

+----[SHA256]-----+

在Windows上设置SSH和创建公钥私钥对的步骤如下:

  1. 检查现有的SSH密钥: 在Windows资源管理器的地址栏中粘贴%USERPROFILE%\.ssh来浏览.ssh目录。如果您已经有了名为id_ed25519和id_ed25519.pub的文件,那么您之前已经创建了SSH密钥,可以跳过创建步骤。
  2. 生成新的SSH密钥对: 打开您选择的终端(如命令提示符、PowerShell或Git Bash)并执行以下命令:
  3. ssh-keygen -t ed25519

按回车确认每个提示,这将创建两个文件:id_ed25519(私钥)和id_ed25519.pub(公钥)。

  1. 配置特殊代理到SSH配置文件: 如果您的机器在博世企业网络(BCN)内,您需要配置特殊代理。在Windows上,首先检查以下两个文件是否存在:
    • %HOMEDRIVE%%HOMEPATH%\.ssh\config(通常位于网络驱动器上)
    • %USERPROFILE%\.ssh\config(通常位于本地磁盘上)

如果两个文件都不存在,创建第一个。然后将以下内容追加到该文件中:

Host bitbucket.etas-dev.com

    HostName sproxy100.fe.internet.bosch.com

    IdentityFile ~/.ssh/id_ed25519

  1. 将公钥添加到Bitbucket: 使用文本编辑器打开id_ed25519.pub文件,复制公钥内容。登录到Bitbucket账户,在“管理账户 > SSH密钥 > 添加密钥”中粘贴公钥内容并保存。

  1. 克隆仓库: 完成上述步骤后,您可以轻松克隆仓库。在Bitbucket中导航到相应的项目,点击“克隆”按钮,它会自动显示正确的链接。使用该URL通过您的本地git客户端克隆仓库。

请记住,如果您使用多台机器,最好不要在服务器上创建和注册多个SSH密钥,而是将第一台机器的密钥复制到所有其他机器上。

对于更复杂的设置,如Jenkins管道中的SSH使用或Artifactory的SSH使用,您可能需要阅读更详细的配置指南。特别是如果您在BCN内,需要为Artifactory创建额外的RSA密钥,并配置SSH以接受它们,因为Artifactory目前不接受ed25519密钥。请注意,用于Artifactory的特殊代理与Bitbucket的不同。如果您需要进一步的帮助,请参考相关的配置文档或联系技术支持。祝您配置顺利!

问题:

check the command cd ~ && ls

解决办法:

需要确保HOME目录的环境变量设置是OK的。不然设置的密钥是找不到的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29842.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

23种设计模式简介

一、创建型&#xff08;5种&#xff09; 1.工厂方法 总店定义制作流程&#xff0c;分店各自实现特色披萨&#xff08;北京店-烤鸭披萨&#xff0c;上海店-蟹粉披萨&#xff09; 2.抽象工厂 套餐工厂&#xff08;家庭装含大披萨薯条&#xff0c;情侣装含双拼披萨红酒&#…

【Unity Shader编程】之光照模型

根据Unity Shader编程的光照模型实现&#xff0c;光线通常可分为以下核心组成部分&#xff1a; 一、基础光照分量 环境光&#xff08;Ambient&#xff09; 全局基础照明&#xff0c;不依赖具体光源 实现方式&#xff1a;UNITY_LIGHTMODEL_AMBIENT内置变量 漫反射光&#xff0…

dify + ollama + deepseek-r1+ stable-diffusion 构建绘画智能体

故事背景 stable-diffusion 集成进 dify 后&#xff0c;我们搭建一个小智能体&#xff0c;验证下文生图功能 业务流程 #mermaid-svg-6nSwwp69eMizP6bt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6nSwwp69eMiz…

无人机扩频技术对比!

一、技术原理与核心差异 FHSS&#xff08;跳频扩频&#xff09; 核心原理&#xff1a;通过伪随机序列控制载波频率在多个频点上快速跳变&#xff0c;收发双方需同步跳频序列。信号在某一时刻仅占用窄带频谱&#xff0c;但整体覆盖宽频带。 技术特点&#xff1a; 抗干扰…

【从零开始学习计算机科学】数字逻辑(九)有限状态机

【从零开始学习计算机科学】数字逻辑(九)有限状态机 有限状态机状态机的表示方法有限状态机的Verilog描述有限状态机 有限状态机(简称状态机)相当于一个控制器,它将一项功能的完成分解为若干步,每一步对应于二进制的一个状态,通过预先设计的顺序在各状态之间进行转换,状…

知识周汇 | Python操作Excel全攻略系列(四):单元格相关篇

目录 系列文章 1 重点 2 如何获取当前工作表的最大行数和最大列数 3 修改单元格的值&#xff08;包括数值和格式&#xff09; 4 查找特定字符的位置 5 对同一列中上下行值相同的单元格进行行合并 6 查找特定值并标记颜色 后续 系列文章 知识周汇 | Python操作Excel全攻…

KubeKey 与 KubeSphere:快速构建 Kubernetes 集群

深度解析 KubeKey 与 KubeSphere&#xff1a;快速构建现代化 Kubernetes 集群 一、技术栈概述 KubeKey&#xff08;KK&#xff09;是由 KubeSphere 团队开发的轻量级 Kubernetes 集群部署工具&#xff0c;其优势在于&#xff1a; 基于 Ansible 的安装程序具有大量软件依赖性…

C++编写Redis客户端

目录 安装redis-plus-plus库 ​编辑 编译Credis客户端 redis的通用命令使用 get/set exists del keys expire /ttl type string类型核心操作 set和get set带有超时时间 set带有NX string带有XX mset mget getrange和setrange incr和decr list类型核心操作…

从零开始实现大语言模型(十三):预训练大语言模型GPTModel

1. 前言 使用梯度下降算法通过下一个token预测任务预训练大语言模型GPTModel&#xff0c;前向传播流程每次会输入一个batch的长度均为context_len的训练样本&#xff0c;执行 batch_size context_len \text{batch\_size}\times\text{context\_len} batch_sizecontext_len次下…

JavaScript(最后一个元素的索引就是数组的长度减 1)array.length - 1

在不同的编程语言中&#xff0c;表示数组中最后一个元素的方法略有不同&#xff0c;但基本思路都是利用数组的长度或索引来实现。 以下是一些常见编程语言中获取数组最后一个元素的方法&#xff1a; 1. JavaScript: 使用 array.length - 1 索引: 这是最常见和传统的方法。Java…

RV1126+FFMPEG多路码流监控项目

一.项目介绍&#xff1a; 本项目采用的是易百纳RV1126开发板和CMOS摄像头&#xff0c;使用的推流框架是FFMPEG开源项目。这个项目的工作流程如下(如上图)&#xff1a;通过采集摄像头的VI模块&#xff0c;再通过硬件编码VENC模块进行H264/H265的编码压缩&#xff0c;并把压缩后的…

Python组合数据类型(一)

目录 一、数据类型 1、基本数据类型 2、组合数据类型 二、介绍两个函数 1、 isinstance函数 2、len函数 三、Python指针 1、指针 2、is运算符和的区别 3、列表的指针 四、函数参数的传递 1、例子一 2、例子二 五、字符串详解 1、转义字符 2、字符串的切片 3、字…

Doris vs ClickHouse 企业级实时分析引擎怎么选?

Apache Doris 与 ClickHouse 同作为OLAP领域的佼佼者&#xff0c;在企业级实时分析引擎该如何选择呢。本文将详细介绍 Doris 的优势&#xff0c;并通过直观对比展示两者的关键差异&#xff0c;同时分享一个企业成功用 Doris 替换 ClickHouse 的实践案例&#xff0c;帮助您做出明…

【ThreeJS Basics 09】Debug

文章目录 简介从 dat.GUI 到 lil-gui例子安装 lil-gui 并实例化不同类型的调整改变位置针对非属性的调整复选框颜色 功能/按钮调整几何形状文件夹调整 GUI宽度标题关闭文件夹隐藏按键切换 结论 简介 每一个创意项目的一个基本方面是能够轻松调整。开发人员和参与项目的其他参与…

Android Native 之 文件系统挂载

一、文件系统挂载流程概述 二、文件系统挂载流程细节 1、Init启动阶段 众所周知&#xff0c;init进程为android系统的第一个进程&#xff0c;也是native世界的开端&#xff0c;要想让整个android世界能够稳定的运行&#xff0c;文件系统的创建和初始化是必不可少的&#xff…

Chain of Draft: 借鉴人类草稿思维让大型语言模型更快地思考

这个研究探讨了大型语言模型&#xff08;LLMs&#xff09;在执行复杂推理任务时面临的计算资源消耗与响应延迟问题。研究特别聚焦于思维链&#xff08;Chain-of-Thought, CoT&#xff09;提示范式的效率局限性。CoT虽然有效&#xff0c;但在推理过程中需要生成冗长、详尽的逐步…

《A++ 敏捷开发》- 18 软件需求

需求并不是关于需求 (Requirements are not really about requirements) 大家去公共图书馆寄存物品&#xff0c;以前都是扫二维码开箱&#xff0c;有些图书馆升级了使用指纹识别。 “是否新方法比以前好&#xff1f;”我问年轻的开发人员。 “当然用指纹识别好。新技术&#x…

【智能体架构:Agent】LangChain智能体类型ReAct、Self-ASK的区别

1. 什么是智能体 将大语言模型作为一个推理引擎。给定一个任务&#xff0c; 智能体自动生成完成任务所需步骤&#xff0c; 执行相应动作&#xff08;例如选择并调用工具&#xff09;&#xff0c; 直到任务完成。 2. 先定义工具&#xff1a;Tools 可以是一个函数或三方 API也…

Vue进阶之Vue3源码解析(一)

Vue3源码解析 目录结构编译compiler-corepackage.jsonsrc/index.ts 入口文件src/compile.ts生成ASTsrc/parse.ts 代码转换src/transform.ts几种策略模式src/transforms/transformElement.tssrc/transforms/transformText.tssrc/transforms/transformExpression.ts 代码生成src/…

servlet tomcat

在spring-mvc demo程序运行到DispatcherServlet的mvc处理 一文中&#xff0c;我们实践了浏览器输入一个请求&#xff0c;然后到SpringMvc的DispatcherServlet处理的整个流程. 设计上这些都是tomcat servlet的处理 那么究竟这是怎么到DispatcherServlet处理的&#xff0c;本文将…