【问题标题】:How to manage a project folder via ssh?如何通过 ssh 管理项目文件夹?
【发布时间】:2018-03-26 16:15:28
【问题描述】:

开发全栈 Web 应用程序,我希望在 linux 机器上拥有我的所有代码和构建逻辑(即 git、docker 容器和其他终端命令),但我的所有开发工作流程都在我的 windows 机器上(所以我的 IDE 、Web 浏览器和 REST 客户端)通过 SSH 访问它。

除了 IDE 之外,我已经设法完成了所有这些工作,我只能通过 SSH 编辑单个文件,而不是将文件夹作为项目进行管理。所以现在我在 linux 机器(Ubuntu)上使用 VSCode,这是阻止我放弃图形界面并在其上安装 Ubuntu Server 的最后一件事。

不,我不想使用 Vim 或 Emacs。我想使用 VSCode 或其他现代 IDE,但最好使用 VSCode。

【问题讨论】:

  • 没有桌面环境就无法使用VSCode
  • 这不是重点。重点是通过 ssh 在 Windows 上使用它……请仔细阅读问题。
  • 对不起,我明白你的问题了

标签: ssh visual-studio-code development-environment


【解决方案1】:

尝试使用 Remote VSCode 插件,如下所述:Using Remote VSCode

这个讨论正是关于你的问题:VSCode 13643 issue Github

编辑:我最近在 Github 上发现了一个新的 VSCode 插件:vs-deploy。它旨在非常快速地远程部署文件和文件夹。它似乎正在工作,到目前为止我还没有发现任何错误。它适用于 FTP、SFTP (SSH) 和许多其他协议。

【讨论】:

  • 我就是这样做的,这个只支持文件,不支持项目(文件夹)。
  • 好的,按照说明使用多个标签
【解决方案2】:

SSH.NET nuget Package 可以很好地用于复制文件和文件夹。 这是一个例子:

var host = "YourServerIpAddress";
var port = 22;
var user = "root"; // TODO: fix
var yourPathToAPrivateKeyFile = @"C:\Users\Bob\mykey"; // Use certificate for login
var authMethod = new PrivateKeyAuthenticationMethod(user, new PrivateKeyFile(yourPathToAPrivateKeyFile));
var connectionInfo = new ConnectionInfo(host, port, user, authMethod);
using (var client = new SftpClient(connectionInfo))
{
    client.Connect();
    if (client.IsConnected)
    {
        //TODO: Copy folders recursivly etc.
        DirectoryInfo source = new DirectoryInfo(@"C:\your\probject\publish\path");
        foreach (var file in source.GetFiles())
        {
            client.UploadFile(File.OpenRead(file.FullName), $"/home/yourUploadPath/{file.Name}", true);
        }
    }
}

当您使用上面的代码创建上传控制台应用程序时,您应该能够通过在项目中添加一个部分来使用 postbuild 事件自动触发上传。

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
    <Exec Command="path to execute your script or application" />
</Target>

如果你喜欢做同样的事情,但更手动,你可以执行一个

dotnet build --configuration Release

后跟一个

dotnet publish ~/projects/app1/app1.csproj

然后使用上面的代码进行上传。

【讨论】:

    【解决方案3】:

    搜索由 Vitaly Kondratiev 开发的扩展 SSHExtension 安装扩展。 并使用服务器详细信息编辑 serverlist json。 前任: “sshextension.serverList”:[ { “名称”:“Kuberntes 212”, “主机”:“10.64.234.54”, “端口”:22, “用户名”:“根”, “密码”:“再见” } ] 保存文件

    然后使用 ctrl+shift+p 登录并选择 sshextension 打开 ssh 扩展类别。它会为你创建一个会话。

    如果您需要将整个目录结构放入您的本地工作区,则更容易。 在 vscode 中使用扩展 ftp-simple。这是一个奇迹,相信我。 在 vscode 中安装 ftp-simple Ctrl+Shift+P 选择 ftp 简单:配置。 配置您的设置 [ { “名称”:“Kubernetes 212”, “主机”:“10.75.64.2”, “端口”:22, “类型”:“sftp”, “用户名”:“根”, “密码”:“再见”, “路径”:“/home/vinod/”, “自动保存”:是的, “确认”:是的 }] 保存文件。 现在 ctrl+shift+p 并选择 ftp-simple:remote 目录到工作区。

    Viola你的工作完成了,生活很简单

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 2015-05-07
      • 2020-04-01
      • 2014-10-07
      • 2012-01-26
      相关资源
      最近更新 更多