用户和服务账号可以使用 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。