Vault-ssh CA管理端两种使用方式

修改于 Wed, 14 Jul 2021 在 05:25 PM

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"]}

这篇文章有帮助吗?

很好!

感谢您的反馈。

抱歉我们没能带来帮助

感谢您的反馈。

告诉我们可以如何改善此文档!

选择至少一个原因

反馈已发送

感谢,我们将试着改善此文档。