如何通过ssh管理项目文件夹?

时间:2018-03-26 16:15:28

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

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

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

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

3 个答案:

答案 0 :(得分:3)

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

此讨论正是关于您的问题:VSCode 13643 issue Github

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

更多如果您需要将整个目录结构放到本地工作区中,则很容易。 在vscode中使用扩展ftp-simple。相信我,这真是一个奇迹。 在vscode中安装ftp-simple Ctrl + Shift + P 选择ftp-simple:config。 配置设置 [     {         “ name”:“ Kubernetes 212”,         “主机”:“ 10.75.64.2”,         “端口”:22,         “ type”:“ sftp”,         “ username”:“ root”,         “ password”:“ byebye”,         “ path”:“ / home / vinod /”,         “自动保存”:是的,         “确认”:是     }] 保存文件。 现在Ctrl + Shift + P 然后选择ftp-simple:remote目录到工作区。

中提琴您的工作完成了,生活很简单