用户和服务账号可以使用 SSH 公钥向 Secure Source Manager 代码库进行身份验证。本页介绍了如何生成 SSH 密钥对,然后将其添加为 Secure Source Manager 网页界面中的身份验证方法。
Secure Source Manager 支持 RSA、ECDSA 和 Ed25519 SSH 密钥类型。
所需的角色
如需获得使用 SSH 公钥进行身份验证所需的权限,请让管理员为您授予以下 IAM 角色:
- 
            如需为用户添加 SSH 密钥,请执行以下操作:
              
  
  
    
      在 Secure Source Manager 实例上授予 Secure Source Manager Instance Accessor  (roles/securesourcemanager.instanceAccessor) 角色
- 
            如需为服务账号添加 SSH 密钥,请执行以下操作:
            - 
  
  
    
      Secure Source Manager Instance Manager  (roles/securesourcemanager.instanceManager) 在 Secure Source Manager 实例上
- 
  
  
    
      服务账号的 Service Account User  (roles/iam.serviceAccountUser) 角色
 
- 
  
  
    
      Secure Source Manager Instance Manager  (
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含使用 SSH 公钥进行身份验证所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需使用 SSH 公钥进行身份验证,您需要具备以下权限:
- 
                  securesourcemanager.sshkeys.createAny
- 
                如需为服务账号分配 SSH 密钥,请执行以下操作:
                  iam.serviceAccounts.actAs
如需了解如何授予 Secure Source Manager 角色,请参阅使用 IAM 进行访问权限控制和向用户授予实例访问权限。
生成密钥对
SSH 密钥对由位于本地系统上的私钥和您在 Google Cloud中注册的公钥组成。
Linux 或 macOS
- 在本地系统上安装 OpenSSH。 
- 在命令提示符后输入以下内容: - ssh-keygen -t [KEY_TYPE] -C "[USER_EMAIL]"- 其中: - [USER_EMAIL]是您的电子邮件地址。
- [KEY_TYPE]是- rsa、- ecdsa或- ed25519中的一个。
 - 例如: - ssh-keygen -t rsa -C "user@example.com"- 出现提示时,输入公钥文件的位置和文件名。 如需接受默认位置和文件名,请按 Enter 键。 
- 出现提示时,请将密码留空,然后按 Enter 键。 
 
Windows
- 在本地系统上安装 PuTTY。 
- 从 Windows 开始 菜单中,启动 PuTTYGen。 
- 在打开的窗口中,从 Parameters 字段中选择密钥类型。 
- 点击生成。 - PuTTYGen 随即会显示生成的公钥字符串。 
- 出现提示时,请将密码留空,然后按 Enter 键。 
- 要将生成的密钥对保存到本地系统,请点击 保存公共密钥 和 保存私有密钥。 
为用户添加 SSH 密钥
- 在 Secure Source Manager 网页界面中,从实例或代码库页面点击 更多选项菜单。
- 点击用户 SSH 密钥。 - 系统会打开用户 SSH 密钥页面,并显示您创建的所有现有密钥的列表。 
- 在用户 SSH 密钥页面中,点击添加密钥。 
- 在添加 SSH 密钥 页面中,为您的密钥输入以下值: - 标题:为密钥添加描述性标题。
- SSH 公钥:粘贴您的公钥字符串。如需获取您的公钥字符串,请运行以下命令:
 - cat ~/.ssh/FILENAME.pub- 其中, - FILENAME是您为密钥文件指定的名称。
您可以使用 SSH 密钥对任何 Secure Source Manager 代码库进行身份验证,前提是您对该代码库拥有所需的权限。
为服务账号添加 SSH 密钥
如需以程序化方式访问您的代码库,您可以为服务账号添加 SSH 密钥。
- 如果您还没有要使用的服务账号,请创建一个服务账号。
- 在 Secure Source Manager 网页界面中,点击 更多选项菜单。
- 点击服务账号 SSH 密钥。系统会打开服务账号 SSH 密钥页面,并显示您添加的所有现有密钥的列表。
- 在服务账号 SSH 密钥页面中,点击添加密钥。
- 在添加服务账号 SSH 密钥页面中,为您的密钥输入以下值: - Title:密钥的描述性标题
- 服务账号:您要使用 SSH 密钥的服务账号的电子邮件地址,格式为 - SA_NAME@PROJECT_ID.iam.gserviceaccount.com- 地点 - SA_NAME是服务账号名称。
- PROJECT_ID是服务账号所在项目的项目 ID。
 
- SSH 公钥:您的 SSH 公钥。如需了解如何生成 SSH 密钥对,请参阅生成密钥对。 
 
- 如果服务账号与 Secure Source Manager 实例不在同一项目中,请向 Secure Source Manager 的服务代理授予您要使用的服务账号的以下角色或权限之一: - iam.serviceAccounts.signJwt权限
- Service Account Token Creator (roles/iam.serviceAccountTokenCreator) 角色
 - 运行以下命令,向您的 Secure Source Manager 服务账号添加 IAM 政策,以向其授予 Service Account Token Creator 角色。 - gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \ --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"- 其中,SERVICE_ACCOUNT 是您要使用的服务账号,INSTANCE_PROJECT_NUMBER 是您的 Secure Source Manager 实例的项目编号。 - SERVICE_ACCOUNT 的格式应为数字服务账号 ID 或电子邮件地址,例如:123456789876543212345 或 my-iam-account@somedomain.com。