Bitbucket SSH 访问设置指南
要通过 SSH 访问 Bitbucket git 仓库,您需要设置 SSH 密钥。这个操作每台机器和用户账户只需设置一次。以下是详细的设置步骤和注意事项:
一、检查并创建 .ssh
目录
- 检查
.ssh
目录:- 在 Windows 上,您可以在资源管理器的地址栏中输入
%USERPROFILE%\.ssh
并按回车来检查这个目录是否存在。 - 如果不存在,您需要手动创建它。
- 在 Windows 上,您可以在资源管理器的地址栏中输入
二、生成 SSH 密钥对
- 运行
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
- 打开公钥文件:
- 使用文本编辑器打开
id_ed25519.pub
文件。
- 使用文本编辑器打开
- 复制公钥内容。
- 登录 Bitbucket 并导航到 “管理账户 > SSH 密钥 > 添加密钥”。
- 粘贴公钥内容 并保存。
五、验证 SSH 设置
- 在终端中运行以下命令,验证 SSH 设置是否正确:
ssh -T git@bitbucket.etas-dev.com
- 如果设置正确,您应该会看到欢迎信息。
六、克隆仓库
- 在 Bitbucket 中导航到相应的项目,点击 “克隆” 按钮,复制 SSH URL。
- 使用该 URL 通过您的本地 git 客户端克隆仓库。
七、常见错误及解决办法
-
“无法解析主机名” 错误:
- 检查
HOME
目录的环境变量设置是否正确。 - 在 Windows 上,可以通过设置用户级别的
%HOME%
环境变量来更改 Home(~)目录。
- 检查
-
“所有者或权限错误”:
- 检查
.ssh
文件夹的文件权限,确保私钥文件权限正确。
- 检查
-
密码不匹配:
- 在设置 SSH 密钥密码时,确保两次输入的密码一致。
-
使用正确的 SSH 客户端:
- 在 Windows 上,Git 可以在任何 shell 中工作,不必局限于 Git Bash。
-
避免使用 HTTPS:
- 使用 SSH 而不是 HTTPS 进行 git 操作,以避免密码更改导致的连接失败。
-
不要复制多个 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 客户端启用 RSA。RSA 在现代 SSH 客户端中已被“弃用”,但目前是唯一在 Bitbucket 和 Artifactory 中都能良好工作的算法。请参阅后面关于 Artifactory 配置的段落。
- 如果您的团队不使用 Artifactory 作为 Git LFS 后端,则可以(也应该)使用椭圆曲线密码学,页面剩余部分将其称为“ed25519”。
- 如果有人告诉您在 Windows 中的命令行中运行某些 git 命令必须使用 git bash,那是错误的。Windows 版本的 Git 在任何 shell 中都能很好地工作,因此使用您习惯的(cmd、Powershell、Windows 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 文件夹的文件权限。
- 确保.ssh目录存在于您的用户目录中。在Windows上,您可以在资源管理器的地址栏中输入%USERPROFILE%\.ssh并按回车来检查这个目录是否存在。如果不存在,您需要手动创建它。
- 当运行ssh-keygen命令时,您可以指定一个完整的路径来保存密钥,以确保它们被保存在正确的位置。例如:
- ssh-keygen -t ed25519 -f "%USERPROFILE%\.ssh\id_ed25519"
这将提示您在%USERPROFILE%\.ssh目录下保存密钥。
- 如果您不想设置密码,直接按回车键跳过密码输入步骤。如果您选择设置密码,确保输入一个您能记住的密码,并且两次输入要一致。
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和创建公钥私钥对的步骤如下:
- 检查现有的SSH密钥: 在Windows资源管理器的地址栏中粘贴%USERPROFILE%\.ssh来浏览.ssh目录。如果您已经有了名为id_ed25519和id_ed25519.pub的文件,那么您之前已经创建了SSH密钥,可以跳过创建步骤。
- 生成新的SSH密钥对: 打开您选择的终端(如命令提示符、PowerShell或Git Bash)并执行以下命令:
- ssh-keygen -t ed25519
按回车确认每个提示,这将创建两个文件:id_ed25519(私钥)和id_ed25519.pub(公钥)。
- 配置特殊代理到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
- 将公钥添加到Bitbucket: 使用文本编辑器打开id_ed25519.pub文件,复制公钥内容。登录到Bitbucket账户,在“管理账户 > SSH密钥 > 添加密钥”中粘贴公钥内容并保存。
- 克隆仓库: 完成上述步骤后,您可以轻松克隆仓库。在Bitbucket中导航到相应的项目,点击“克隆”按钮,它会自动显示正确的链接。使用该URL通过您的本地git客户端克隆仓库。
请记住,如果您使用多台机器,最好不要在服务器上创建和注册多个SSH密钥,而是将第一台机器的密钥复制到所有其他机器上。
对于更复杂的设置,如Jenkins管道中的SSH使用或Artifactory的SSH使用,您可能需要阅读更详细的配置指南。特别是如果您在BCN内,需要为Artifactory创建额外的RSA密钥,并配置SSH以接受它们,因为Artifactory目前不接受ed25519密钥。请注意,用于Artifactory的特殊代理与Bitbucket的不同。如果您需要进一步的帮助,请参考相关的配置文档或联系技术支持。祝您配置顺利!
问题:
check the command cd ~ && ls
解决办法:
需要确保HOME目录的环境变量设置是OK的。不然设置的密钥是找不到的。