我希望将 Visual Studio (2022) 连接到我的笔记本电脑以交叉编译 C++ 项目。但是我有一个问题。它不接受连接。
我读过另一个问题,Visual Studio 仅接受 PEM 格式的 rsa 密钥,因此我使用ssh-keygen -m PEM -t rsa -b 4096. 我尝试过使用和不使用 pem 格式的各种不同密钥大小(1024、2048、4096、8192)以及带或不带密码短语。我通过将公钥添加到我的 ubuntu 笔记本电脑上的授权密钥文件中并使用生成的密钥 ( ssh -i <key_file>user@host) 从 WSL2 连接来测试了其中的每一个密钥。每次都有效。
我还读过这个问题,您应该使用 puttygen 生成密钥,然后导出 openssh 密钥。我也尝试过,有或没有密码短语,但仅使用默认密钥大小。再次使用这些键从 WSL2 的 bash 终端进行连接可以正常工作,但我无法在 MSVS 中进行连接。
来自 Visual Studio 连接管理器的错误消息也没有任何意义。当我单击“连接”时,它要求我确认主机的指纹,并将其添加到已知的主机文件中。当我单击“是”时,连接管理器的输入字段会变成红色。将鼠标悬停在红色字段上会产生结果:
对于“主机名:”以及“端口:”
协商主机密钥算法失败。仅支持 RSA 和 DSA 主机密钥。
我不太确定这意味着什么。我的主机在其 home/.ssh 目录中有一个 rsa 密钥文件格式。Visual Studio 在第一次连接时表示密钥指纹是“ecdsa-sha2-nistp256”,根据文档支持该指纹。
对于“私钥文件:”
使用私钥“<密钥路径>”连接时发生错误。
之前使用带有空密码的密钥时,密码也被标记为红色,现在该指示消失了。
需要做什么才能使其发挥作用?
所以我习惯了 Linux 并且一直使用正确的路径。我只将 Windows 用于 Visual Studio 和一些不能在 wine 或 mono 上运行的游戏。有一个令人讨厌的“功能”使资源管理器中的文件路径显示为例如This PC/Desktop
而不是C:/Users/<username>/Desktop点击父文件夹按钮不会把我带到我的用户目录,而是到这个 PC 虚拟文件夹,我想这很好,但我不想要那个,除非我从 C:/ 上去或点击它直接地。文档、音乐、下载和其他此类目录也是如此。它们都出现在这个“这台电脑”文件夹下,这让我很恼火。
我已经在资源管理器视图设置中设置了“显示完整路径”。例如,
如果它不是库文件夹(桌面、音乐等),则会显示完整的文件夹路径C:/Users/Username/Desktop/test,但在路径栏中,它是相同的旧This PC废话。
有什么方法可以改变这种行为吗?