如何通过ssh管理项目文件夹?
How to manage a project folder via ssh?
开发全栈网络应用程序,我想在 linux 机器上拥有我的所有代码和构建逻辑(即 git、docker 容器和其他终端命令) ,但是我 windows 机器上的所有开发工作流程(所以我的 IDE、网络浏览器和 REST 客户端)都通过 SSH 访问它。
除了 IDE,我已经设法完成了所有这些,我只能通过 SSH 编辑单个文件,而不是将文件夹作为项目来管理。所以现在我在 linux 机器 (Ubuntu) 上使用 VSCode,这是阻止我放弃图形界面并在其上安装 Ubuntu 服务器的最后一件事。
不,我不想使用 Vim 或 Emacs。我想使用 VSCode 或另一个现代 IDE,但最好使用 VSCode.
尝试使用远程 VSCode 插件,如下所述:Using Remote VSCode
这个讨论正是关于你的问题:VSCode 13643 issue Github
编辑:我最近在 Github 上发现了一个新的 VSCode 插件:vs-deploy。它旨在非常快速地远程部署文件和文件夹。它似乎在工作,到目前为止我还没有发现任何错误。它适用于 FTP、SFTP (SSH) 和许多其他协议。
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);
}
}
}
当您使用上面的代码创建上传控制台应用程序时,您应该能够通过向您的项目添加一个部分来使用构建后事件自动触发上传。
<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
然后使用上面的代码执行上传。
搜索 Vitaly Kondratiev 开发的扩展 SSHExtension
安装扩展。
并使用服务器详细信息编辑服务器列表 json。
前任:
"sshextension.serverList": [
{
"name": "Kuberntes 212",
"host": "10.64.234.54",
"port": 22,
"username": "root",
"password": "byebye"
}
]
保存文件
然后ctrl+shift+p登录,选择sshextension打开ssh扩展类别。它将为您创建一个会话。
如果您需要将整个目录结构放入您的本地工作区,则更容易。
在 vscode 中使用扩展名 ftp-simple。相信我,这是一个奇迹。
在 vscode 中安装 ftp-simple
Ctrl+Shift+P
select ftp-简单:配置。
配置您的设置
[
{
"name": "Kubernetes 212",
"host": "10.75.64.2",
"port": 22,
"type": "sftp",
"username": "root",
"password": "byebye",
"path": "/home/vinod/",
"autosave":是的,
"confirm": 是的
}]
保存文件。
现在 ctrl+shift+p
和 select ftp-简单:工作区的远程目录。
Viola 你的工作已经完成,生活很简单
开发全栈网络应用程序,我想在 linux 机器上拥有我的所有代码和构建逻辑(即 git、docker 容器和其他终端命令) ,但是我 windows 机器上的所有开发工作流程(所以我的 IDE、网络浏览器和 REST 客户端)都通过 SSH 访问它。
除了 IDE,我已经设法完成了所有这些,我只能通过 SSH 编辑单个文件,而不是将文件夹作为项目来管理。所以现在我在 linux 机器 (Ubuntu) 上使用 VSCode,这是阻止我放弃图形界面并在其上安装 Ubuntu 服务器的最后一件事。
不,我不想使用 Vim 或 Emacs。我想使用 VSCode 或另一个现代 IDE,但最好使用 VSCode.
尝试使用远程 VSCode 插件,如下所述:Using Remote VSCode
这个讨论正是关于你的问题:VSCode 13643 issue Github
编辑:我最近在 Github 上发现了一个新的 VSCode 插件:vs-deploy。它旨在非常快速地远程部署文件和文件夹。它似乎在工作,到目前为止我还没有发现任何错误。它适用于 FTP、SFTP (SSH) 和许多其他协议。
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);
}
}
}
当您使用上面的代码创建上传控制台应用程序时,您应该能够通过向您的项目添加一个部分来使用构建后事件自动触发上传。
<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
然后使用上面的代码执行上传。
搜索 Vitaly Kondratiev 开发的扩展 SSHExtension 安装扩展。 并使用服务器详细信息编辑服务器列表 json。 前任: "sshextension.serverList": [ { "name": "Kuberntes 212", "host": "10.64.234.54", "port": 22, "username": "root", "password": "byebye" } ] 保存文件
然后ctrl+shift+p登录,选择sshextension打开ssh扩展类别。它将为您创建一个会话。
如果您需要将整个目录结构放入您的本地工作区,则更容易。 在 vscode 中使用扩展名 ftp-simple。相信我,这是一个奇迹。 在 vscode 中安装 ftp-simple Ctrl+Shift+P select ftp-简单:配置。 配置您的设置 [ { "name": "Kubernetes 212", "host": "10.75.64.2", "port": 22, "type": "sftp", "username": "root", "password": "byebye", "path": "/home/vinod/", "autosave":是的, "confirm": 是的 }] 保存文件。 现在 ctrl+shift+p 和 select ftp-简单:工作区的远程目录。
Viola 你的工作已经完成,生活很简单