远程调试基于ssh的.NET Core 2.0控制台应用程序

9
我正在Windows 10上构建一个.NET Core 2.0控制台应用程序,但我想在运行Debian 9的远程Linux服务器上进行调试。
我找到了这篇文章:

https://blogs.msdn.microsoft.com/devops/2017/01/26/debugging-net-core-on-unix-over-ssh/

但是我遇到了一个问题,就是在选择SSH连接时卡住了。我的远程服务器需要身份验证,如果我输入user@ip:port,它会找不到任何内容。

enter image description here

我发现有人提到使用SSH隧道,但由于服务器上没有dotnet进程在监听(它已安装但我看不到任何正在运行的服务),所以我不确定我应该隧道哪个端口甚至是向哪个方向隧道。

我需要做什么才能在调试器中看到我的SSH连接?

1个回答

6
我刚试了一下,发现“查找”按钮也没有任何作用。
首先,在Linux主机上启用SSH连接(在我的情况下是Ubuntu,我必须运行sudo ufw allow ssh)。通过在Windows上打开cmd并执行ssh user@host来测试一下。
然后,在Visual Studio中的SSH附加到进程窗口中,确保您点击“刷新”并选中“显示所有用户的进程”框。您应该看到正在运行的“dotnet”进程。

enter image description here

enter image description here

编辑: 在某些时候,您应该会被提示输入远程主机的密码。以下是当我更改远程主机的密码并尝试进行调试时显示的对话框。

enter image description here


你的 Linux 主机是否在本地网络上且不需要身份验证?我的是远程的,需要身份验证。 - Guerrilla
我的主机是本地的,但它需要身份验证。 - Maria Ines Parnisari
你在开发机上为Linux主机指定身份验证设置的位置在哪里? - Guerrilla
第一次尝试刷新处理时,它要求它们。请参阅我的编辑答案。 - Maria Ines Parnisari
啊,有趣,我没有看到这个对话框出现。 - Guerrilla
我认为这是因为我没有使用22号端口。我会像user@ip:port这样指定。你知道这个语法是否正确吗? - Guerrilla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接