Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication 修改SSH代理以进行公钥签名_Authentication_Ssh_Openssh - Fatal编程技术网

Authentication 修改SSH代理以进行公钥签名

Authentication 修改SSH代理以进行公钥签名,authentication,ssh,openssh,Authentication,Ssh,Openssh,我试图让SSH身份验证工作,而不需要以明文形式存储私钥。我使用的api允许对存储在内存中的密钥进行私钥签名,我想知道将它合并到SSH中的最佳方式是什么。既然我真正需要做的就是在SSH代理进行身份验证时向它提供一个有效的私钥签名,那么最好的方法是什么呢。我可以稍微修改一下ssh代理以接受我给它的签名吗?或者我必须编写自己的代理来处理这个请求吗?有很多方法可以做到这一点。最简单的方法是使用PKCS#11接口,该接口在ssh agent中提供,可用于此用例(从存储密钥的安全位置提供签名——通常是智能卡

我试图让SSH身份验证工作,而不需要以明文形式存储私钥。我使用的api允许对存储在内存中的密钥进行私钥签名,我想知道将它合并到SSH中的最佳方式是什么。既然我真正需要做的就是在SSH代理进行身份验证时向它提供一个有效的私钥签名,那么最好的方法是什么呢。我可以稍微修改一下ssh代理以接受我给它的签名吗?或者我必须编写自己的代理来处理这个请求吗?

有很多方法可以做到这一点。最简单的方法是使用PKCS#11接口,该接口在
ssh agent
中提供,可用于此用例(从存储密钥的安全位置提供签名——通常是智能卡或HSM模块)


此外,使用密码短语的加密密钥可以解决您对“以明文存储私钥”的要求。

我正在尝试了解如何使用PKCS#11接口,我不确定我使用的设备是否能与之配合使用。更清楚地说,我使用的API可以生成带有私钥的ECDSA证书,密钥不可访问或可读。根据我对SSH身份验证协议的理解,ECDSA证书是从客户端的私钥生成的。那么,我可以使用PKCS#11接口向SSH代理提供有效的ECDSA证书进行身份验证吗?如果我不是很清楚,请告诉我,非常感谢您提供的任何帮助!PKCS#11是一个标准,因此有很多关于它的文档。为了弄清楚它是什么样子,看看完全在软件中实现它的项目是一个很好的开始。您很可能可以从这一点开始,插入您感兴趣的接口。