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

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的。不然设置的密钥是找不到的。

相关文章:

  • Vue3实战学习(Vue环境配置、快速上手及卸载、下载安装Node.js超详细教程(2025)、npm配置淘宝镜像)(1)
  • 常见Web应用源码泄露问题
  • 我的世界1.20.1forge模组开发(8)——自定义实体、AI
  • Hugging Face 推出 FastRTC:实时语音视频应用开发变得得心应手
  • H.264,H.265,H.266标准技术改进
  • 基于字符的卷积网络在文本分类中的应用与探索
  • TypeError: Invalid attempt to spread non-iterable instance
  • 金融合规测试:金融系统稳健运行的“定海神针“
  • Matlab——添加坐标轴虚线网格的方法
  • 本地化deepseek
  • Mybatis如何通过databaseId属性支持不同数据库的不同语法
  • 分布式数据库中的四种透明性:逻辑透明、位置透明、分片透明和复制透明
  • ⭐算法OJ⭐N-皇后问题 II【回溯剪枝】(C++实现)N-Queens II
  • Spring中的@Qualifier和@Resource注解有什么不同?
  • redis 支持哪几种数据结构
  • 【FPGA开发】Verilog-数据截断实现四舍五入效果、模块化改造、对比Matlab验证,Modelsim覆盖率
  • SSLScan实战指南:全面检测SSL/TLS安全配置
  • 股指期货交割日每月几号?为什么是第三个周五还是倒数第二个周五?
  • 第十五届蓝桥杯Scratch12月stema选拔赛真题—消失的水母
  • STM32之Unix时间戳
  • 大连无网站的企业有哪些/站长之家域名查询排行
  • 南山老品牌网站建设/德芙巧克力软文推广
  • 广告艺术设计专业学什么/排名优化系统
  • wordpress扁平化登录页源码/女装标题优化关键词
  • 济南网站建设cnwenhui/百度咨询
  • 网易那个自己做游戏的网站是什么/seo属于运营还是技术