我正在编写一个允许用户登录到服务器的客户端程序。该程序希望用户已经设置了ssh代理并将其RSA密钥对添加到该代理。它获取公钥并将其发送到远程签名者,该签名者返回公钥的SSH证书。该证书声明允许公共密钥的所有者登录服务器。
我想让客户端程序将证书添加到代理,并将其与密钥相关联,以便它可以将密钥与证书一起使用ssh到远程服务器。我该怎么办?
答案 0 :(得分:0)
您是否要通过颁发临时OpenSSH证书来实现临时SSH访问?如果是,为什么不每次用户通过SSH-CA认证时都只生成一个新的密钥对?
无论如何:OpenSSH具有硬编码的文件名约定。您必须将OpenSSH证书放在私钥文件旁边,然后调用 ssh-add 。
您的密钥对:
$HOME/.ssh/id_rsa
$HOME/.ssh/id_rsa.pub
您的OpenSSH证书必须位于此处:
$HOME/.ssh/id_rsa-cert.pub
答案 1 :(得分:0)
我也一直在寻找解决这个问题的方法。
Uber的ussh似乎提供了此功能,但需要注意的是会生成新的密钥对。 Uber certificate authority announcement引人入胜:
员工运行ussh命令时会获得ussh证书。 这将连接到USSHCA,执行pam对话并 将客户的ssh代理转发到CA。如果客户端成功 进行身份验证后,CA会生成一个新的ssh密钥,并填充 与配置的信息(有效期, 有效的用户,允许的选项等),并添加 密钥和远程代理的证书。证书是 已添加到代理,并带有超时,通知代理删除密钥 证书过期时。
ussh PAM模块在github上。