1. vault自签密钥对
1) https://vault.arfront.cn/ui/vault/auth?with=oidc
VAULT SERVER ENGINE:ssh签名管理引擎,vault服务器通过为每个引擎生成一个证书密钥对,并将密钥的pub部分放入需要ssh进行管理的服务器的配置文件中,配置该密钥免密登陆;
ssh host:需要通过vault进行ssh进行管理的主机;
VAULT SERVER ENGINE配置
2) 配置及启用SSH CA secrets engine,以下以ssh-client-signer为例,点击首页Enable new engine,然后选择ssh;
3) 配置SSH ENGINE及CA证书;
4) 添加策略,(因公司已经设置及添加了各个部门对应的权限策略,所以如是公司的,这部分不需要处理)文章最后
5) 增加SSH用户
6) 点击创建角色 Create role
输入Role Name,Key type选择ca,需要勾选Allow user certificates,Default Username输入用户名,默认是ubuntu,Allowed users输入*,开启TTL,设置过期时间为30分钟(可选),
在Default extension中填入以下内容
{
"permit-pty": ""
}
SSH HOST配置
SSH服务器主要是配置VAULT服务可以用上面生成的证书登陆服务器,所以需要做以下配置,trusted-user-ca-keys.pem是以上步骤中生成的文件,如一台SSH HOST需要配置多个ENGINE登陆,则可将生成的trusted-user-ca-keys.pem文件内容复制至目标机器内的trusted-user-ca-keys.pem文件中:
sudo cp trusted-user-ca-keys.pem /etc/ssh/
echo "TrustedUserCAKeys /etc/ssh/trusted-user-ca-keys.pem" | sudo tee -a /etc/ssh/sshd_config
sudo service sshd restart
2.使用本地生成密钥对
1) 该部分可以使用git bash进行生成,在git bash内运行以下命令,如本机已有,则可复用本机的证书
ssh-keygen -t rsa #证书有俩个,一个公钥(后缀名为.pub),一个私钥
2)进入vault ssh引擎 (ssh_sales为例) 本地的私钥注意保管不可丢!!!!!
3)同第一种方法第7步操作
sudo cp trusted-user-ca-keys.pem /etc/ssh/
echo "TrustedUserCAKeys /etc/ssh/trusted-user-ca-keys.pem" | sudo tee -a /etc/ssh/sshd_config
sudo service sshd restart
两中方法的区别在于一种是vault自签的密钥对,一种是本地生成的密钥,
- A. 第一种方法:host的pem文件源于vault生成的文件,假如vault故障,我们无法获得vault的密钥(第3步,只有公钥),无法对host进行管理
- B. 第二种方法:host的pem文件是源于我们本机生成的文件,即使vault故障,我们可以通过本机的私钥进行登录(本机密钥注意保管!!!!!!!)
path "sys/mounts" { capabilities = ["list", "read"]}path "ssh-client-signer/sign/clientrole" { capabilities = ["create", "update"]}path "ssh-client-signer/config/ca" { capabilities = ["read"]}path "ssh-host-signer/config/ca" { capabilities = ["read"]}
这篇文章有帮助吗?
很好!
感谢您的反馈。
抱歉我们没能带来帮助
感谢您的反馈。
反馈已发送
感谢,我们将试着改善此文档。