Visual Studio中的SSH远程调试采用什么格式的私钥?

Bob*_*Bob 9 .net-core visual-studio-2019

我有一个在 Debian 服务器上运行的 .NET 5 应用程序,我想将调试器附加到该服务器上。我尝试使用的调试器是集成到 Visual Studio 2019 中的调试器。

我满足文档中列出的所有先决条件。

建立新连接时,密码连接有效。但是,我使用私钥的尝试都没有产生可用的连接。

当通过 Visual Studio 外部的 PuTTY 和 Windows OpenSSH 二进制文件进行连接时,此私钥效果很好。因此,底层 SSH 工具似乎已正确设置。


尝试:

  • 不受保护的 OpenSSH 兼容私钥:

    结果%LocalAppData%\devenv_exe_linux_connection_error_133651_090121.log仅包含文本Bad Data.

    Passphrase invalid空密码框上也有说明

  • 受密码保护的 OpenSSH 兼容私钥:

    与不受保护的密钥完全相同的结果。Bad Data.Passphrase invalid

  • 不受保护的 PuTTY 兼容私钥:

    主机/端口文本框报告Failed to negotiate host key algorithm. Only RSA and DSA host keys are supported.(服务器有可用的 ecdsa/ed25519/rsa 主机密钥,并且密码验证也接受了 ecdsa 主机密钥)

    私钥文件文本框报告An error occurred connecting using private key ...

    空密码文本框报告Passphrase invalid

  • 受密码保护的 PuTTY 兼容私钥:

    与不受保护的密钥完全相同的结果。Failed to negotiate host key algorithm.// 。An error occurred connecting using private keyPassphrase invalid

目前还不清楚 Visual Studio 支持哪些关键格式,因为我已经尝试了所有常见的格式。

理想情况下,我想使用存储在与 Pageant 兼容的 KeeAgent 中的密钥,该密钥也通过与 OpenSSH 兼容的套接字公开。但我会通过文件工作来获取私钥。


版本:

  • Visual Studio 2019 专业版,版本 16.11.2
  • Debian Buster 上的 dotnet SDK 5.0.101

Dav*_*rez 6

在 Linux 上连接到 dot net core 2.1 进程对我有用的是:

  • 打开puttygen,加载putty私钥
  • 指定用于导出密钥的密码
  • 在菜单中Conversions,选择Export OpenSSH key

然后,在 Visual Studio 2019 中:

  • 转到工具/选项/跨平台/连接管理器
  • 添加新连接
  • 设置主机名、端口和用户名。
  • 对于身份验证类型,选择private key,然后选择上面导出的文件作为私钥。设置您之前使用的密码。
  • 单击Connect按钮,它应该打印类似“连接已验证”的内容
  • 关闭选项

然后在附加到进程对话框中,Connection type= SSH 并选择Connection target您刚刚配置的,它应该能够显示远程进程并让您附加。