如何注入 SSH 密钥
目前我们提供两种方式管理容器内的密钥:
- 网易云托管(所有密钥操作在控制台进行)
- 自主管理(所有密钥操作在命令行进行)
若在控制台进行密钥操作(如创建容器时注入密钥,创建完成后重新注入密钥),则将不再支持自主管理,该过程不可逆。
一、网易云托管
Attention
如果使用场景中有使用网易云容器 SSH 其他服务的情况,请务必不要在控制台操作密钥。
1. 创建时注入密钥
在创建有状态负载的过程中,可选择 SSH 密钥(即公钥),选择的密钥在创建服务时会注入容器中。创建成功后,即可通过私钥进行 SSH 登录。Deployment 负载实例本身不建议在容器内部做改动,所以 Deployment 负载 不支持在控制台注入密钥。
- 注入已有密钥:创建有状态负载时,选择已有 SSH 密钥:
- 创建有状态负载时,最多支持注入五个密钥;
- 创建密钥:点击「创建 SSH 密钥」,网易云提供两种创建 SSH 密钥方式:
- 创建新密钥:选择「创建新密钥」,网易云生成随机密钥,自动下载至本地;
- 导入密钥:选择「导入密钥」,上传本地公钥文件或填写公钥内容导入本地密钥。
2. 创建完成后重新注入密钥
2.1. 在服务列表,选择需要重新注入密钥的有状态负载; 2.2. 在服务的设置页面,支持重新注入密钥,操作同创建密钥。
二、自主管理
1. 重新生成密钥
Note
若没有密钥,可以使用以下方法在容器内生成新的密钥对,然后将私钥拷贝到本地使用。
1.1. 打开 Web Console(如何使用网易云 WebConsole),输入以下命令生成新密钥对:
ssh-keygen
1.2. 生成过程中的人工交互部分,默认全部回车即可,生成完毕输入以下命令将公钥导入授权文件:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
1.3. 输入以下命令输出「私钥内容」,并将输出内容复制或下载到本地,保存为任意文件名。
Attention
复制后注意删除多余空格和换行符。
cat ~/.ssh/id_rsa
1.4. 在原生 SSH 客户端导入该私钥即可使用,详见:如何使用 SSH 密钥登录。
2. 添加公钥
Note
若本地已有可用密钥对,可以使用以下方法,将公钥添加至容器中。
2.1. 打开 Web Console(如何使用网易云 WebConsole),输入以下命令创建 .ssh 文件夹并调整权限:
mkdir ~/.ssh chmod 700 ~/.ssh
2.2. 输入以下命令将本地公钥内容(.pub 文件)导入授权文件:
echo "此处填写你的公钥内容" >> ~/.ssh/authorized_keys
2.3. 调整权限:
chmod 600 ~/.ssh/authorized_keys
2.4. 在原生 SSH 客户端导入本地私钥即可使用,详见:如何使用 SSH 密钥登录。