管理 SSH Key
本节为您介绍如何管理 SSH 连接凭证,该凭证可用于远程 ssh 连接开发环境。
# 背景说明
平台共提供两种凭证即 密码凭证 和 秘钥凭证 供您使用。
- 当开发环境的 SSH 设置 配置为 开启 时,则 密码凭证 和 秘钥凭证 都可用于连接开发环境。
- 当开发环境的 SSH 设置 配置为 关闭 时,此处即便配置了凭证,您也无法远程连接开发环境。
# 前提条件
已进入 “平台设置” 页面:下拉右上角账户处,选择 平台设置,可进入 “平台设置” 页面。
# 管理密码凭证
首次设置,在 个人设置 页中 SSH 配置 的 密码 参数处,单击 点击设置。
用户名:由字母、数字组成,2-25 个字符,不可为空。
密码:6-25 位字符,不可为空。
如需修改密码,可单击 修改 按钮。
密码修改后实时生效,不影响已连接的开发环境。
# 管理秘钥凭证
# 添加 SSH Key
添加的 SSH Key 将成为远程连接开发环境的凭证。
- 单击 添加 SSH Key 按钮,弹出 添加 SSH Key 框。
- 在弹框中配置创建方式,并单击 确定。
- 自动创建 SSH Key:该方式由平台生成密钥对,并为您自动下载私钥文件。
- 导入 SSH Key:该方式使用本地已有的密钥对。将本地
{$HOME}/.ssh/
目录下的.pub
文件(公钥)内容粘贴到框中。如无可参考 生成 SSH Key 生成秘钥对后再复制公钥内容。
- 私钥文件保存在本地的
{$HOME}/.ssh/
目录下。
登录时可在开发环境连接串后使用-i {$HOME}/.ssh/{私钥文件名}
指定私钥文件,例如:ssh -p 30022 xxx@root@ssh-f83735d46ac42a886db4702123088102.bn6c1b7xx42k@direct.virtaicloud.com -i ~/.ssh/id_rsa_cloud -o"PubkeyAcceptedKeyTypes +ssh-rsa" # -o"PubkeyAcceptedKeyTypes +ssh-rsa" 用于指定支持的公钥类型,当登录时报错 “no mutual signature algorithm” 时,可尝试添加此参数。 # 若未使用 -i 指定私钥文件,则默认使用 ~/.ssh/id_rsa 私钥文件。
# 重置 SSH Key
如您因特殊场景需重置 SSH Key,可单击 重置 按钮,重新生成 SSH Key。
注意:重置后请妥善保存好生成的私钥文件,以免丢失需再次重置。重置后立刻生效,但不影响已连接的开发环境。
# 相关操作
# 查看开发环境连接串
在具体项目中选择 开发,进入 开发环境实例 页 获取开发环境的 ssh 连接串用于连接开发环境。
# 生成 SSH Key
在个人设置页面中,可以导入你自己生成的 SSH Key,本文演示如何生成当前平台兼容的秘钥。通常地,只要你的操作系统上安装了 OpenSSH,那么就可以通过如下 通用命令 来生成秘钥,生成的秘钥默认放在 ~/.ssh
目录下:
ssh-keygen -q -t rsa -C '你的秘钥备注' -N ''
注意:
- 平台目前仅支持加密算法 RSA ,因此上述命令中
-t
指定的值只允许是:rsa
- 当前平台暂不支持 1024 位的秘钥,如您使用 -b 参数指定秘钥位数,建议位数在 2048 ~ 16384 范围内,使用上述命令生成的秘钥默认为 2048 位。
# Linux
默认情况下,Linux 各发行版都自带了 OpenSSH 套件,直接在终端中执行上述通用命令即可。如果没有安装,那么根据你的发行版类型执行如下命令安装:
Debian/Ubuntu:
apt-get install -y openssh-server openssh-client
RHEL/CentOS/Fedora:
yum install -y openssh-server openssh-clients
其他类型的发行版,请自行搜索安装方法。
# macOS
默认情况下,macOS 自带了所需的 OpenSSH 套件,直接在终端或者 iTerm2 中执行上述通用命令即可。
# Windows
首先需要系统中安装有 OpenSSH,如果你的系统上没有安装,请参考官方文档 使用 PowerShell 安装 OpenSSH (opens new window) 来安装。安装好之后,即可在 PowerShell 中生成秘钥。如果你使用的是其他的工具如 XShell 那么请参考它们的用户手册来生成。
# 使用 PowerShell
直接在打开的 PowerShell 中,执行上述通用命令即可。
# 使用 Git bash
如果你的系统中安装了官方 Git,它自带了一个 Git Bash,那么可以在 Git Bash 中执行上述通用命令来生成秘钥。