
# 配置SSH密钥
#### 什么是SSH密钥
SSH密钥是一种协议，用于在本地计算机与远程代码仓库之间建立安全连接。
用户可以通过配置SSH密钥来确保与代码托管服务的安全通信。
用户可以参考[配置步骤]配置SSH密钥，也可以根据操作视频进行配置。
#### 介绍视频
<video controls="controls" preload="none" id="object1440971692411" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/support/codehub-video/1727601331979602536.mp4" title="配置SSH密钥" poster="https://support.huaweicloud.com/usermanual-codeartsrepo/zh-cn_image_0000002377171789.jpg" height="300.0000" width="600.0000"></video>
#### 约束与限制
表1配置SSH密钥的权限配置 
| 限制类别 | 具体限制                                                                                                                                                                        |
|:---|:---|
| 功能限制 | 在企业级开发环境中，开发人员经常需要在多台电脑上进行代码开发和调试，这要求每台电脑都必须配置SSH密钥，以便所有账号能够通过此密钥安全地连接到服务。 因此，在多电脑的环境下，需要为每一台电脑配置SSH密钥，从而每一台电脑下的所有账号均可通过此SSH密钥进行连接。 |
| 权限限制 | 如果用户没有完成实名认证，"添加SSH密钥"按钮将被禁用。                                                                                                                                               |
   
 #### 配置步骤
用户也可以根据如下操作步骤配置SSH密钥。
1. 运行Git Bash，先检查本地是否已生成过SSH密钥。请在Git Bash中执行如下命令： 
   ```
   cat ~/.ssh/id_rsa.pub
   ```
   - 如果提示"No such file or directory"，说明用户这台计算机没生成过SSH密钥，请继续执行[2]。
   
   - 如果返回以"ssh-rsa"开头的字符串，说明用户这台计算机已经生成过SSH密钥，如果使用已经生成的密钥请直接跳到[3]，如果想重新生成密钥，请从[2]向下执行。
   
   
   
   
2. 生成SSH密钥。在Git Bash中生成密钥的命令如下：
   
   ```
   ssh-keygen -t rsa -b 4096 -C your_email@example.com
   ```
   - "-t rsa"表示生成的是RSA类型密钥。
   
   - "-b 4096"是密钥长度（该长度的RSA密钥更具安全性）。
   
   - "-C your_email@example.com"表示在生成的公钥文件中添加注释，方便识别此密钥对的用途。
   
   
   输入生成密钥的命令后，直接回车，密钥会默认存储到"\~/.ssh/id_rsa"路径下，对应的公钥文件为"\~/.ssh/id_rsa.pub"。
   
   
3. 复制SSH公钥到剪贴板。请根据用户的操作系统，选择相应的执行命令，将SSH公钥复制到用户的剪贴板。
   
   - Windows：
     ```
     clip < ~/.ssh/id_rsa.pub
     ```
     
   
   - Mac：
     ```
     pbcopy < ~/.ssh/id_rsa.pub
     ```
     
   
   - Linux (xclip required):
     ```
     xclip -sel clip < ~/.ssh/id_rsa.pub
     ```
     
   
   
   
   
4. 登录并进入CodeArts Repo的代码仓库列表页，单击右上角昵称，选择"个人设置 \> 代码托管 \> SSH密钥"，进入配置SSH密钥页面。 
   也可以在CodeArts Repo的代码仓库列表页，单击右上角"设置我的SSH密钥"，进入配置SSH密钥页面。
   
   
5. 在**"标题"** 中为用户的新密钥起一个名称，将用户在[3]中复制的SSH公钥粘贴进**"密钥"**中，单击确定后，弹出页面"密钥已设置成功，单击 立即返回，无操作3S后自动跳转"，表示密钥设置成功。
 
#### 相关文档
- 如果返回"密钥添加失败，请检查密钥是否有效"，表示输入的密钥格式有误，如果用户是通过手动在本地复制的密钥，可能复制了多余的空格或者复制的密钥不完整，可以参考[3]，根据用户的系统执行指令，重新配置密钥。
- 在配置SSH密钥时，提示："此密钥已存在，请重新生成密钥"，表示该密钥已添加到某个账户下。解决办法：可参考如上操作步骤，在本地重新生成一次SSH密钥，再把生成的密钥配置到CodeArts Repo。
- CodeArts Repo提供接口检验私钥是否具有拉取代码的权限，请参考API文档[检验私钥是否有拉取代码的权限](https://support.huaweicloud.com/api-codeartsrepo/ShowPrivateKeyVerify.html)。
 
