首页 > 编程语言 >C#使用PuTTY加密上传文件

C#使用PuTTY加密上传文件

时间:2024-05-14 16:51:50浏览次数:26  
标签:remoteFilePath 加密 string C# PuTTY sftpClient file var new

需求:加密通过SFPT上传文件

1.安装PuTTY

2.生成文件,文件不用后缀名

 

3.上代码

class Program
    {
        private static string file = "C:\\Users\\3859\\Desktop\\RODHoldToRepairOrScrapList KSZRODHL2022-10-28\\T326\\ReceivingReport-20240510100.xlsx";

        static void Main(string[] args)
        {

            //PuttySFTP_ToFile(file);
            PPKSftp_ToFile(file);
            Console.ReadKey();
        }



        private static void PPKSftp_ToFile(string file)
        {

            var privateKeyPath = @"D:\dzw\FileKey\puttyKey"; // 指定ppk文件路径
            var username = "DZW2"; // SSH服务器的用户名
            var host = "124.221.227.131"; // SSH服务器的地址
            var port = 1022; // SSH端口,默认是22
            var remoteFilePath = "/path/"; // 远程文件路径
            //使用私钥文件创建一个PrivateKeyFile对象
            PrivateKeyFile privateKeyFile = new PrivateKeyFile(privateKeyPath);
            //使用私钥文件创建一个PrivateKeyFile对象
            PrivateKeyAuthenticationMethod privateKeyAuth = new PrivateKeyAuthenticationMethod(username,privateKeyFile);

            //创建一个链接信息对象
            ConnectionInfo connectionInfo = new ConnectionInfo(host,port,username, privateKeyAuth);

            //创建一个SftpClient脆响并连接到SFTP服务器
            using (var sftpClient = new SftpClient(connectionInfo))
            {
                sftpClient.Connect();

                //创建远程目录和本地目录
                if (!sftpClient.Exists(remoteFilePath))
                {
                    sftpClient.CreateDirectory(remoteFilePath);
                }
                //创建文件
                //if (!Directory.Exists(file))
                //{
                //    Directory.CreateDirectory(file);
                //}

                //赋值的文件到远程目录
                //IEnumerable<FileSystemInfo> infos = new DirectoryInfo(file).EnumerateFileSystemInfos();
                //foreach (var info in infos)
                //{
                //    using (var fs = File.OpenRead(info.FullName))
                //    {
                //        string reFilePath = Path.Combine(remoteFilePath,info.Name);
                //        sftpClient.BeginUploadFile(fs,remoteFilePath);
                //    }
                //}
                using (var fs = File.OpenRead(file))
                {
                    string reFilePath = Path.GetFileName(file);
                    sftpClient.UploadFile(fs, remoteFilePath + reFilePath);
                }

                sftpClient.Disconnect();

            }

        }

    }

 

4.效果:

 

 

参阅:https://blog.csdn.net/CSDN2016DDDD/article/details/132980800

 

标签:remoteFilePath,加密,string,C#,PuTTY,sftpClient,file,var,new
From: https://www.cnblogs.com/dzw159/p/18191685

相关文章

  • 【SpringBoot】实现项目启动后执行的两个接口ApplicationRunner和CommandLineRunner
    开发中可能会有这样的场景,需要在容器启动的时候执行一些内容。比如读取配置文件,数据库连接之类的。SpringBoot给我们提供了两个接口来帮助我们实现这种需求。两个启动加载接口分别是:CommandLineRunner和ApplicationRunner。Spring提供了接口InitializingBean,jdk提供了@PostCo......
  • the request was rejected because no multipart boundary was found
    报错:Failedtoparsemultipartservletrequest;nestedexceptionisjava.io.IOException:org.apache.tomcat.util.http.fileupload.FileUploadException:therequestwasrejectedbecausenomultipartboundarywasfound本地一个模块,在多种环境下测试过都OK,但是在一个......
  • 第 6 篇 Scrum 冲刺博客
    这个作业属于哪个课程软件工程2024这个作业要求在哪里团队作业4——项目冲刺这个作业的目标记录敏捷流程下第六天的项目开发进展,对团队昨日的项目进度进行总结一、每日站立式会议1、每日站立式会议照片2、会议摘要本次会议为第六次ScrumMeeting会议~由于......
  • 探究——C# .net 代码混淆/加壳
    背景:保密。过程:先查询一下常见的加壳工具:DotFuscator,官方自带,据说免费版混淆程度不高ConfuserEx,只支持.NETFramework2.0/3.0/3.5/4.0/4.5/4.6/4.7/4.8,不支持.NETCoreVirboxProtector,很好很优秀,但是收费NETReactor,最新6.9版收费,PJ版到4.9不支持.NETCoreObfu......
  • KEIL中使用的SCT段描述文件的一些语法说明
    ;FLASH起始址FLASH大小LR_IROM10x080000000x000F0000;这行描述的是编译后的执行代码存放在FLASH的哪地址,FLASH大小是多少。LR_IROM1是段名,随便写{ER_IROM10x080000000x000F0000;这行描述了一个ROM段,表示代码存储的位置和ROM的大......
  • 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(12.A)- uSDHC eMMC启动时间(RT1170)
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MXRT1170uSDHCeMMC启动时间。本篇是i.MXRT1170启动时间评测第五弹,前四篇分别给大家评测了RawNAND启动时间(基于MIMXRT1170-EVK_Rev.B)、SerialNOR启动时间(基于MIMXRT1170-EVB_Rev.A2)、1......
  • 第 5 篇 Scrum 冲刺博客
    这个作业属于哪个课程软件工程2024这个作业要求在哪里团队作业4——项目冲刺这个作业的目标记录敏捷流程下第五天的项目开发进展,对团队昨日的项目进度进行总结一、每日站立式会议1、每日站立式会议照片2、会议摘要本次会议为第五次ScrumMeeting会议~由于......
  • [RCTF2015]EasySQL
    [RCTF2015]EasySQL打开环境,有一个注册一个登录按钮这里注册的时候有个坑,邮箱那栏你不能输入@xx.com,否则就会报错不允许的字符fuzz测试一下发现过滤了不少字符注册完成后登录首页的文字没有什么有用的信息,进入帐号发现可以修改密码如果是正常的账号,此时修改密码不会有......
  • react什么时候用函数组件,什么时候用类组件
    在React中,使用函数组件还是类组件取决于你的需求和个人偏好。在过去,类组件是主要的React组件形式,但是随着ReactHooks的引入,函数组件也变得非常强大,两者之间的差异已经减小。以下是一些指导原则:简单的UI组件:对于简单的UI组件,如按钮、图标、展示静态内容的组件等,使用......
  • [转]查杀linux隐藏挖矿病毒rcu_tasked
    记录一次项目中挖矿病毒的经历这是黑客使用的批量蔓延病毒的工具,通过如下脚本[[email protected]]#cat/home/pischi/.bash_historycd/root/nvidia-smi;ls-a;cd.cfg;ls-a;wc-lip./key20-fippass22"nproc;nvidia-smi;rm-rf.cfg;mkdir.cfg;cd.cfg;wget193.42......