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

问题描述 投票:0回答:3

我有一个在 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 key
     / 
    Passphrase invalid

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

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


版本:

    Visual Studio 2019 专业版,版本 16.11.2
  • Debian Buster 上的 dotnet SDK 5.0.101
.net-core visual-studio-2019
3个回答
7
投票
对我来说,连接到 Linux 上的 dot net core 2.1 进程有效的是:

    打开puttygen,加载putty私钥
  • 指定密码以导出密钥
  • Conversions
     菜单中,选择 
    Export OpenSSH key
    
    
然后,在 Visual Studio 2019 中:

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

Connection type

 = SSH 并选择您刚刚配置的
Connection target
,它应该能够显示远程进程并让您附加。


1
投票
这对我有用:

1 - 在 power-shell 中创建私钥并使用命令行添加密码:

ssh-keygen -t rsa -b 4096
3 - 打开 PuTTYgen,加载您的私钥,然后转到 

Conversions->Export OpenSSH

 并导出您的私钥


0
投票
根据微软:

https://learn.microsoft.com/en-us/cpp/linux/connect-to-your-remote-linux-computer?view=msvc-170

17.10 之前的 Visual Studio 版本支持 EC、RSA 和 DSA 密钥 用于远程连接。出于安全考虑,RSA 和 DSA 密钥 VS 17.10 及更高版本不再支持。仅 EC 密钥 目前支持。创建兼容的密钥对 连接管理器使用命令:ssh-keygen -m pem -t ecdsa -f

现在只允许使用椭圆曲线键,只需使用它就可以了

© www.soinside.com 2019 - 2024. All rights reserved.