13 ssl certificate ssh
我正在尝试为一个小团队安装开发工具,但我无法正确进行身份验证。
由于我们是一个分布式团队,服务器在互联网上。我想要 SSO+零客户端配置。
所以基本上 git over https+webdav 是不切实际的,因为 git 客户端只能使用基本身份验证但不保存密码,一些 IDE 插件甚至不转发他们 UI 中的密码问题。
那么我必须通过 ssh 使用 git。我安装了 gitosis,它基本上可以使用非对称密钥,好的。我将不得不要求每个开发人员安装他们的密钥,我可以做到,忘记零配置。
然后我希望开发人员访问 https 上的网络工具(wiki、票证等),但这次我必须给他们一个登录名/密码或另一个私钥,因为格式在 SSH 之间不兼容而 SSL 和 OS 上存储它的地方是不一样的。现在,我必须忘记 SSO 吗?
我错了吗?
use*_*686 12
TL;DR 摘要:如果您有 SSL/X.509 证书+密钥,只需将私钥文件提供给ssh. 或者,如果您已经在 中拥有 SSH 密钥id_rsa,则只需在签署 CSR 时将其与 OpenSSL 一起使用。就这样。
假设您有一个用户的 SSL 证书joeuser.pem,其私钥在joeuser.key.
由于 X.509 使用标准 RSA 密钥,SSH 也是如此,您应该能够告诉您的 SSH 客户端使用joeuser.key——唯一的要求是它采用可理解的格式。
查看内部joeuser.key并检查它是否看起来像这样:
-----开始RSA私钥----- MGECAQACEQCxQaFwijLYlXTOlwqnSW9PAgMBAAECEETwgqpzhX0IVhUa0OK0tgkC CQDXPo7HDY3axQIJANLRsrFxClMDAghaZp7GwU2T1QIIMlVMo57Ihz8CCFSoKo3F 2L/2 -----结束RSA私钥-----
在 Open SSL 中,此格式称为“PEM”(如 中所示-outform pem)并且默认使用。Open SSH使用相同的格式,您可以使用它ssh -i joeuser.key来连接。
您可以提取公共的OpenSSH密钥id_rsa.pub格式(投入authorized_keys)与:
ssh-keygen -y -f joeuser.key > joeuser-ssh.pub
(同样的 PEM 格式的公钥可以用 提取出来openssl rsa -pubout,但是用处不大。)
如果您有 DSA 密钥,它的工作方式应该与 RSA 完全相同。
OpenSSH 在此处对 x509 证书提供实验性支持:
http://roumenpetrov.info/openssh
您可以为每个用户颁发一个 x509 证书,并将它们用于两者。
您可以指定用户证书的允许 DN,而不是将用户 pubkey 放在其 authorized_keys 中;并且您必须配置网络服务器/网络应用程序,以便将 DN 转换为用户名。
你很不走运 - SSH 密钥和 SSL 证书是不同的动物,据我所知它们是不可互换的。
您最好的选择可能是为您的网络工具配置单点登录/共享密码存储/任何内容,并将 git/gitosis 作为身份验证岛。