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
C# 具有已知指纹的Renci.SshNet预接受密钥_C#_Ssh - Fatal编程技术网

C# 具有已知指纹的Renci.SshNet预接受密钥

C# 具有已知指纹的Renci.SshNet预接受密钥,c#,ssh,C#,Ssh,我有一些代码使用renci.sshnet库通过SFTP连接到第三方。第三方正在服务器上更新其密钥,并已发送更新的指纹。我在互联网上到处搜索,找不到如何实现这个新指纹,所以我们的应用程序将在几周内发生密钥更改时继续连接。该应用程序是非交互式的,在连接时不允许我接受新密钥,即使这是一个选项 有人能帮我找到这个指纹应该放在哪里,这样我的应用程序就可以自动接受新钥匙了吗?我找到了一种手动方法,可以使用PuTTy接受钥匙指纹。在注册表中缓存主机密钥之后,我们的控制台应用程序(使用Renci.SshNet)

我有一些代码使用renci.sshnet库通过SFTP连接到第三方。第三方正在服务器上更新其密钥,并已发送更新的指纹。我在互联网上到处搜索,找不到如何实现这个新指纹,所以我们的应用程序将在几周内发生密钥更改时继续连接。该应用程序是非交互式的,在连接时不允许我接受新密钥,即使这是一个选项


有人能帮我找到这个指纹应该放在哪里,这样我的应用程序就可以自动接受新钥匙了吗?

我找到了一种手动方法,可以使用PuTTy接受钥匙指纹。在注册表中缓存主机密钥之后,我们的控制台应用程序(使用Renci.SshNet)连接没有问题

安装PuTTy后,可以打开命令提示符并键入以下内容:

D:\> "c:\Program Files (x86)\SimonTatham\PuTTY\psftp.exe" "userName@hostName"
PuTTy的响应将解释主机密钥未缓存,它将向您提供签名,然后询问您是否信任此主机,输入“y”以添加密钥

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 34:12:3c:2c:a3:90:29:e7:81:f3:96:d6:06:3e:f5:29
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) _
输入“y”(不带引号)并按enter键后,提示将询问您密码。如果您有密码,可以输入密码并启动连接

通过添加开关-i,您可以使用钥匙连接腻子,如下所示:

D:\> "c:\Program Files (x86)\SimonTatham\PuTTY\psftp.exe" "userName@hostName" -i "\\path_to_key\private_key.ppk"
钥匙必须是油灰的


我知道这不是一个直截了当的解决方案,但这是一个围绕这一点的工作,嗯,很有效。

这会有帮助吗@不幸的是,我没有使用密钥文件。它只是一个用户名和密码。当第三方迁移到新密钥时,我假设我的应用程序将无法连接,因为新指纹与我们过去使用的指纹不匹配。有人告诉我,我们需要将这个新指纹添加到我们的服务器上,但我所能找到的只是如何在Linux上实现这一点,而不是windows,因为windows似乎将这些指纹存储在不同的地方。