本文主要介绍了在同一台计算机上同时管理多个云效账号的场景下,如何去配置SSH Key。
使用背景
SSH Key是用于克隆代码的授权标识,具有全平台唯一性,代表着一个特定的账号。每个云效账号所配置的SSH Key必须不同,以便有效地标识用户并对应相应的操作权限及审计追踪。在某些情况下,如果您需要在同一台计算机上同时管理多个云效账号,可以通过以下方式配置SSH Key。
前提条件
通过SSH协议访问Codeup,需要满足如下条件:
本机已安装Git(安装教程参见安装Git)并保证版本大于 1.9(通过
git --version
可获取本地的版本)。本机需要安装OpenSSH客户端(GNU/Linux, macOS, 或 Windows 10已内置OpenSSH)。
SSH尽量保持最新,6.5之前的版本由于使用MD5签名,可能存在安全问题。
配置SSH key
1生成多个SSH Key:在Git Bash中执行以下命令以生成SSH Key。为了区分不同账号生成的SSH Key,请在Git Bash出现如下的第三行命令行时不要直接回车,而是填写自定义的密钥路径名称,以便后续使用,例如~/.ssh/codeup_1 或 ~/.ssh/codeup_2,然后进行回车确认。
ssh-keygen -t rsa -C "<您的邮箱>" Generating public/private rsa key pair. Enter file in which to save the key (~/.ssh/id_rsa):<为了区分多个key,请填写自定义的名称>
添加SSH密钥:登录云效账号A,选择Codeup页面右上角
。将步骤1中生成的*.pub的公钥粘贴到公钥输入框中进行保存。同理可配置步骤1中生成的账号B公钥到相应的账号下。编辑~/.ssh/config文件:
# 账号A Host codeup_1 HostName codeup.aliyun.com IdentityFile ~/.ssh/codeup_1 PreferredAuthentications publickey IdentityAgent none IdentitiesOnly yes # 账号B Host codeup_2 HostName codeup.aliyun.com IdentityFile ~/.ssh/codeup_2 PreferredAuthentications publickey IdentityAgent none IdentitiesOnly yes
HostName:填写托管平台服务地址。
Host:填写别名,方便命令行使用。
IdentityFile:填写证书位置。
命令行操作
命令行切换账号:在日常进行代码推送和拉取的工作中,获取代码库的SSH克隆地址后,本地可能存在多个账号,用户可以使用命令行切换账号。以示例库举例,假设克隆地址为:
gi*@codeup.aliyun.com:me/Codeup-Demo.git
。那么可以使用如下命令切换账号:git@codeup_1:me/Codeup-Demo.git git@codeup_2:me/Codeup-Demo.git
同时也可以使用以下命令查看当前使用的密钥对应的账号:
ssh -t git@codeup_1
正常将看到如下返回结果:
更多说明
更多SSH配置说明,请参见ssh config 文档。