我正在尝试为一个小团队安装开发工具,但无法获得身份validation权限。
由于我们是分布式团队,服务器在互联网上。 我想要SSO +零客户端configuration。
所以基本上git over https + webdav是不切实际的,因为git客户端只能使用基本的身份validation,而不能保存密码,有些IDE插件甚至不会在其UI中转发密码问题。
然后我必须通过SSH使用Git。 我安装gitosis,它基本上与非对称密钥,确定。 我将不得不要求每个开发者安装他们的密钥,我可以这样做,忘记零configuration。
然后,我希望开发人员访问https上的Web工具(维基,门票等),但这次我必须给他们一个login名/密码或另一个私钥,因为这些格式在SSH之间不兼容而SSL和在OS上存储它的地方是不一样的。 现在,我必须忘记SSO?
我错了吗?
TL; DR摘要:如果您有SSL / X.509证书+密钥,只需将私钥文件提供给ssh 。 或者 ,如果您已在id_rsa拥有SSH密钥,则只需在签署CSR时使用OpenSSL。 就这样。
假设您在joeuser.pem拥有一个用户的SSL证书,并且在joeuser.pem拥有其私钥。
由于X.509使用标准RSA密钥,所以SSH也应该能够告诉你的SSH客户端使用joeuser.key – 唯一的要求是它是一个可以理解的格式。
看看joeuser.key的内部,看看它是否有点像这样:
-----开始RSA私钥----- MGECAQACEQCxQaFwijLYlXTOlwqnSW9PAgMBAAECEETwgqpzhX0IVhUa0OK0tgkC CQDXPo7HDY3axQIJANLRsrFxClMDAghaZp7GwU2T1QIIMlVMo57Ihz8CCFSoKo3F 2L / 2 -----完RSA PRIVATE KEY -----
在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
(使用openssl rsa -pubout可以提取PEM格式的相同公钥,但是使用起来不大。)
如果你有一个DSA密钥,它应该像RSA一样工作。
OpenSSH在这里为x509证书提供实验支持:
http://roumenpetrov.info/openssh
您可以为每个用户颁发一个x509证书,并将其用于两者。
而不是将用户pubkey放在其authorized_keys中,则可以指定用户证书的允许DN; 并且您必须configurationWeb服务器/ Web应用程序,以便将DN转换为用户名。
你几乎不走运 – SSH密钥和SSL证书是不同的动物,据我所知,它们是不可互换的。
你最好的select可能是configuration单一login/共享密码存储/无论你的networking工具和git / gitosis作为一个身份validation岛。