为了账号安全,请及时绑定邮箱和手机立即绑定

使用 SSH.NET SshClient 将文件从 Windows 复制到远程 Linux 服务器

使用 SSH.NET SshClient 将文件从 Windows 复制到远程 Linux 服务器

C#
GCT1015 2022-07-23 16:48:27
我正在使用 Visual Studio 和 C# Web 应用程序。我正在尝试使用 SSH.NET 将文件从 Windows 服务器移动到远程 Linux 服务器SshClient。我正在尝试下面的代码,但文件没有被复制。var filespath = FUupload.PostedFile.FileName.Replace("\\", "/");SshClient sshclient = new SshClient("hostname", "username", "pwd");sshclient.Connect();ShellStream stream = sshclient.CreateShellStream("cmsd", 80, 24, 800, 600, 1024);Label1.Text = sendCommand("sudo su - wwabc1", stream).ToString();Label2.Text = sendCommand("whoami", stream).ToString();Label3.Text = sendCommand("cp /" + filespath + " /wwabc1/test/folder_one/test/", stream).ToString();public StringBuilder sendCommand(string customCMD){    StringBuilder answer;    var reader = new StreamReader(stream);    var writer = new StreamWriter(stream);    writer.AutoFlush = true;    WriteStream(customCMD, writer, stream);    answer = ReadStream(reader);    return answer;}private void WriteStream(string cmd, StreamWriter writer, ShellStream stream){    writer.WriteLine(cmd);    while (stream.Length == 0)    {        Thread.Sleep(500);    }}private StringBuilder ReadStream(StreamReader reader){    StringBuilder result = new StringBuilder();    string line;    while ((line = reader.ReadLine()) != null)    {        result.AppendLine(line);    }    return result;}我没有收到任何错误,但文件没有移动。
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

您不能使用 shell 命令在本地和远程机器之间传输文件。


想象一下,您正在使用 SSH 终端客户端(PuTTY 行)。你可以cp在 PuTTY 中使用命令上传文件吗?- 你不能。


您必须使用 SFTP 协议。


SftpClient sftpclient = new SftpClient("hostname", "username", "pwd");

sftpclient.connect();

string localFilename = FUupload.PostedFile.FileName;

string remoteFilename = "/wwabc1/test/folder_one/test/" + Path.GetFileName(filename);

using (var fileStream = File.OpenRead(localFilename))

{

    sftpClient.UploadFile(fileStream, remoteFilename);

}


查看完整回答
反对 回复 2022-07-23
  • 1 回答
  • 0 关注
  • 199 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号