欢迎来到天天文库
浏览记录
ID:18551891
大小:365.50 KB
页数:10页
时间:2018-09-19
《c#访问基于公开键认证的sftp服务器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、最近项目要访问客户的SFTP服务器,稍微费了点劲,memo一下,免得下次还得去google。0什么是SFTP,公开键认证, SFTP可不是FTP协议的扩展,他是基于SSH的文件传输协议。而当SFTP服务器登录有客户端的公开键时,客户端就可以用自己的私有键去跟服务器握手(handshake)已实现登录而不需要输入密码。而这种方式被称为公开键认证。1建SFTP服务器 首先当然是先建一个localSFTPserver,我使用的是SilverSHielD.它是非商用的话,免费,当然只能同时又三个连接,http://qun.qqlove7
2、89.com下载,安装。 2配置服务器打开"SilverSHielDManagementConsole",然后connect LogPath设一下,然后切换到user,追加 username等等,http://www.qq791.com填好.关键的在manageUser’s PublicKeys, 打开,Add 正规的流程应该是客户用winscp等工具生成自己的Key-pair,然后把public可以贴到actualPublicKey,俺们自己测试用,所以直接Generate,然后会提示你保存私有键,这是一定要选OpenSSHPr
3、ivateKeyFiles,这个生成的文件就是客户端认证用私有键。依次confirm下去,配置完成。 3下载访问SFTP的library我用的是SSH.NETLibrary 4,访问代码 A,说不定另一个客户用的是FTP,做一个通用的接口先:1publicinterfaceIFtpClient2{3///4///连接服务器5///6///true:成功;false:失败7boolConnect();8///9///断开连接10///4、ummary>11voidDisConnect();1213///14///取得文件列表15///16///路径17///18ListListFiles(stringpath);1920///21///下载文件22///23///包含全路径的服务器端文件名24///5、me="localFileName">本地保存的文件名25///26boolDownload(stringremoteFileName,stringlocalFileName);2728///29///上传文件30///31///待上传的文件32///服务器端文件名33///6、turns>34boolUpload(stringlocalFileName,stringremoteFileName);3536///37///文件改名38///39///包含全路径的源文件名40///包含全路径的新文件名41///42boolRename(stringorgFileName,stringnewFi7、leName);4344///45///删除文件46///47///48///49///50boolDelete(stringfileName);51} B定义实现:1publicclassSFtpClient:IFtpClient2{3SftpClientsftp=null;45///6///构造函数7//8、/8///sftp服务器名或IP9///端口,默认2210///11//
4、ummary>11voidDisConnect();1213///14///取得文件列表15///16///路径17///18ListListFiles(stringpath);1920///21///下载文件22///23///包含全路径的服务器端文件名24///5、me="localFileName">本地保存的文件名25///26boolDownload(stringremoteFileName,stringlocalFileName);2728///29///上传文件30///31///待上传的文件32///服务器端文件名33///6、turns>34boolUpload(stringlocalFileName,stringremoteFileName);3536///37///文件改名38///39///包含全路径的源文件名40///包含全路径的新文件名41///42boolRename(stringorgFileName,stringnewFi7、leName);4344///45///删除文件46///47///48///49///50boolDelete(stringfileName);51} B定义实现:1publicclassSFtpClient:IFtpClient2{3SftpClientsftp=null;45///6///构造函数7//8、/
5、me="localFileName">本地保存的文件名25///26boolDownload(stringremoteFileName,stringlocalFileName);2728///29///上传文件30///31///待上传的文件32///服务器端文件名33///6、turns>34boolUpload(stringlocalFileName,stringremoteFileName);3536///37///文件改名38///39///包含全路径的源文件名40///包含全路径的新文件名41///42boolRename(stringorgFileName,stringnewFi7、leName);4344///45///删除文件46///47///48///49///50boolDelete(stringfileName);51} B定义实现:1publicclassSFtpClient:IFtpClient2{3SftpClientsftp=null;45///6///构造函数7//8、/
6、turns>34boolUpload(stringlocalFileName,stringremoteFileName);3536///37///文件改名38///39///包含全路径的源文件名40///包含全路径的新文件名41///42boolRename(stringorgFileName,stringnewFi
7、leName);4344///45///删除文件46///47///48///49///50boolDelete(stringfileName);51} B定义实现:1publicclassSFtpClient:IFtpClient2{3SftpClientsftp=null;45///6///构造函数7//
8、/
此文档下载收益归作者所有