精华内容
下载资源
问答
  • Linux远程访问安全之SFTP安全 配置SFTP安全: 一:建立SFTP帐号目录 # mkdir -p /var/sftp/sftp01 # mkdir -p /var/sftp/sftp02 # mkdir -p /var/sftp/sftp03 二:SFTP的账户直接使用Linux操作系统账户: ...

    Linux远程访问安全之SFTP安全

     

    配置SFTP安全:

    一:建立SFTP帐号目录

    # mkdir -p /var/sftp/sftp01

    # mkdir -p /var/sftp/sftp02

    # mkdir -p /var/sftp/sftp03

     

    二:SFTP的账户直接使用Linux操作系统账户:

    # groupadd sftp

    # useradd -M -d /var/sftp/ -G sftp sftp_admin

    # useradd -M -d /var/sftp/sftp01 -G sftp sftp01

    # useradd -M -d /var/sftp/sftp02 -G sftp sftp02

    # useradd -M -d /var/sftp/sftp02 -G sftp sftp03

    【-M :不创建家目录   -d:创建指定家目录】

    不要忘了设置这几个帐号的密码】

     

    三:编辑/etc/ssh/sshd_config配置文件

    # vim /etc/ssh/sshd_config

    // 注释这行 # Subsystem  sftp  /usr/lib/openssh/sftp-server

    // 添加以下几行(以下的 %h 表示家目录)

    Subsystem  sftp  internal-sftp

    AllowUsers  admin sftp_admin sftp01 sftp02 sftp03

     

    Match User sftp_admin

        ChrootDirectory /var/sftp

        ForceCommand internal-sftp

    Match Group sftp

        ChrootDirectory %h

        ForceCommand internal-sftp

     

    # systemctl restart ssh.service   //重启服务

     

    四:目录权限设置,许可遵循两点:

      1、ChrootDirectory 设置的目录权限及所有的上级目录权限,属主和属组都必须是root用户。

      2、ChrootDirectory 设置的目录权限及其所有的上级目录权限,只有属主能拥有写权限(即只有root用户有写权限),也就是说权限最大设置只能为755。

    【由于目录权限问题,sftp帐号都不具有写权限,因此,在其宿主目录下创建一个具有写权限的目录,用于资源上传】

    # chown -R root:root /var/sftp/

    # chmod -R 755 /var/sftp/

    # mkdir /var/sftp/w /var/sftp/sftp01/w /var/sftp/sftp02/w /var/sftp/sftp03/w

    # chown sftp_admin:sftp_admin /var/sftp/w

    # chown sftp01:sftp01 /var/sftp/sftp01

    # chown sftp02:sftp02 /var/sftp/sftp02

    # chown sftp03:sftp03 /var/sftp/sftp03

    // 修改w目录属主和属组为用户本身以及用户本身所在组,使得拥有写权限,可以上传资源。

     

    五:在客户端进行测试

     


     

    配置完成。

     

    转载于:https://www.cnblogs.com/relax1949/p/8973331.html

    展开全文
  • SFTP 安全文件传送协议

    千次阅读 2016-10-13 15:21:28
    安全文件传送:SFTP (介绍,下载,配置,C#源码) SFTP 简介: SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟FTP几乎语法功能一样。 SFTP是SSH的一...

    安全文件传送:SFTP (介绍,下载,配置,C#源码)

    SFTP 简介:

    SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟FTP几乎语法功能一样。

    SFTP是SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。它本身没有单独的守护进程,必须使用sshd守护进程来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以使用SFTP是十分安全的。但由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。在对网络安全性要求更高时,代替FTP使用。

    SFTP客户端下载:

        WinSCP  等等


    SFTP秘钥配置:

        当WinSCP安装成功,在目录中找到puttygen.exe进行秘钥配置(public ,private.ppk)


    SFTP 操作类:

    1. public class SftpHelper
          {
              SftpClient sftp = null;
              /// <summary>
              /// 构造函数
              /// </summary>
              /// <param name="sftpIP">sftp服务器IP</param>
              /// <param name="sftpPort">端口,默认22</param>
              /// <param name="sftpName">用户名</param>
              /// <param name="privateKey">用户私钥</param>
              /// <param name="sftpPwd">密码</param>
              public SftpHelper(string sftpIP, string sftpName, string sftpPwd, string privateKey, int? sftpPort)
              {
                  PrivateKeyFile keyFile = null;

                  if (string.IsNullOrEmpty(sftpPwd))
                  {
                      //使用秘钥验证
                      keyFile = new PrivateKeyFile(privateKey);
                  }
                  else
                  {
                      //使用带口令的秘钥验证
                      keyFile = new PrivateKeyFile(privateKey, sftpPwd);
                  }
                  if (sftpPort.HasValue)
                  {
                      //设置端口
                      sftp = new SftpClient(sftpIP, sftpPort.Value, sftpName, keyFile);
                  }
                  else
                  {
                      //默认端口
                      sftp = new SftpClient(sftpIP, sftpName, keyFile);
                  }
                  if (sftp != null)
                  {
                      sftp.ConnectionInfo.RetryAttempts = 5;
                      sftp.ConnectionInfo.Timeout = new TimeSpan(0, 3, 0);
                  }
              }
              /// <summary>
              /// SFTP连接
              /// </summary>
              /// <returns></returns>
              public bool Connect()
              {
                  if (sftp == null)
                  {
                      return false;
                  }
                  if (sftp.IsConnected)
                  {
                      return true;
                  }
                  try
                  {
                      sftp.Connect();
                      return true;
                  }
                  catch (Exception)
                  {
                      return false;
                  }
              }
              /// <summary>
              /// 关闭
              /// </summary>
              public void DisConnect()
              {
                  if (sftp == null)
                  {
                      return;
                  }
                  if (!sftp.IsConnected)
                  {
                      return;
                  }
                  try
                  {
                      sftp.Disconnect();
                      sftp.Dispose();
                      sftp = null;
                  }
                  catch (Exception)
                  {
                      return;
                  }
              }

              /// <summary>
              /// 取得文件列表
              /// </summary>
              /// <param name="path">路径获取所有文件</param>
              /// <param name="catalogue">路径获取某个文件</param>
              /// <returns></returns>
              public List<string> GetFileList(string path, string catalogue)
              {
                  if (!Connect())
                  {
                      return null;
                  }
                  List<string> files = new List<string>();
                  try
                  {
                      //sftp.ChangeDirectory(catalogue);
                      sftp.ListDirectory(path).ToList().ForEach(f =>
                      {
                          files.Add(f.FullName);
                      });
                      return files;
                  }
                  catch (Exception)
                  {
                      return null;
                  }
              }

              /// <summary>
              /// 下载文件
              /// </summary>
              /// <param name="remoteFileName">包含全路径的服务器端文件名</param>
              /// <param name="localFileName">本地保存的文件名</param>
              /// <param name="catalogue">下载文件存放的路径</param>
              /// <returns></returns>
              public bool Get(string remoteFileName, string localFileName, string catalogue)
              {
                  if (!Connect())
                  {
                      return false;
                  }
                  try
                  {
                      sftp.ChangeDirectory(catalogue);
                      FileStream fs = File.OpenWrite(localFileName);
                      sftp.DownloadFile(remoteFileName, fs);
                      fs.Close();
                      return true;
                  }
                  catch (Exception)
                  {
                      return false;
                  }
              }

              /// <summary>
              /// 上传文件
              /// </summary>
              /// <param name="localFileName">待上传的文件路径</param>
              /// <param name="stream">待上传的文件流</param>
              /// <param name="remoteFileName">服务器端文件名</param>
              /// <param name="catalogue">上传文件存放的路径</param>
              /// <returns></returns>
              public bool Put(Stream stream, string remoteFileName, string catalogue)
              {
                  if (!Connect())
                  {
                      return false;
                  }
                  try
                  {
                      sftp.ChangeDirectory(catalogue);
                      //FileStream fs = File.OpenRead(localFileName);//通过本地路径进行读取流
                      sftp.UploadFile(stream, remoteFileName, true);//true 同名文件将被覆盖
                      stream.Close();
                      Thread.Sleep(1000);
                      return true;
                  }
                  catch (Exception)
                  {
                      return false;
                  }
              }

              /// <summary>
              /// 创建文件夹
              /// </summary>
              /// <param name="SFtpPath">文件夹名</param>
              /// <param name="catalogue">文件夹路径</param>
              /// <returns></returns>
              public bool DirectoryExist(string SFtpPath,string catalogue)
              {
                 
                  var list = sftp.ListDirectory(catalogue);
                  if (list.Where(x => x.IsDirectory && x.Name == SFtpPath).Count() != 0)
                  {
                      return true;
                  }
                  try
                  {
                      sftp.CreateDirectory(SFtpPath);
                      return true;
                  }
                  catch (Exception)
                  {
                      return false;
                  }
              }

              /// <summary>
              /// 文件改名
              /// </summary>
              /// <param name="localFileName">包含全路径的源文件名</param>
              /// <param name="remoteFileName">包含全路径的新文件名</param>
              /// <param name="catalogue">文件路径</param>
              /// <returns></returns>
              public bool Rename(string orgFileName, string newFileName, string catalogue)
              {
                  if (!Connect())
                  {
                      return false;
                  }
                  try
                  {
                      //sftp.ChangeDirectory(catalogue);
                      sftp.RenameFile(orgFileName, newFileName);
                      return true;
                  }
                  catch (Exception)
                  {
                      return false;
                  }
              }
              /// <summary>
              /// 删除文件
              /// </summary>
              /// <param name="fileName">文件名</param>
              /// <param name="catalogue">文件路径</param>
              /// <returns></returns>
              public bool Delete(string fileName, string catalogue)
              {
                  if (!Connect())
                  {
                      return false;
                  }
                  try
                  {
                      sftp.ChangeDirectory(catalogue);
                      sftp.DeleteFile(fileName);
                      return true;
                  }
                  catch (Exception)
                  {
                      return false;
                  }
              }
          }

    注意:

     1.需要引用using Renci.SshNet;   using System.IO;    using System.Threading;

     2.操作SFTP的方法很多,我这里是Renci.SshNet,可能方法的不同,秘钥的格式就可能不同,所以在生成秘钥之后,使用puttygen.exe转换为Export OpenSSH  Key

     3.将私钥放置项目的Debug目录下

       




    展开全文
  • 它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。 1.常用登陆方式: 格式:sftp <user>@<host> 通过sftp连接<host>,端口为默认的22,指定用户<user>。 2.查看sftp支持的命令 ...

    sftp 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。

    1.常用登陆方式:

    格式:sftp <user>@<host>

    通过sftp连接<host>,端口为默认的22,指定用户<user>。

    2.查看sftp支持的命令

    使用help命令,查看支持的命令,如:

    sftp>help

    (其中命令前面有“l”表示本地执行,其他表示在所登录的远程主机上面执行)

    3.基本的使用

    sftp主要是用来传输文件的,包括上传文件(从本机到远程主机) ,下载文件(从远程主机到本机)。

    (1)文件下载

         get [-Ppr] remote [local]  

    如:get test.cpp ./Project/ 

    将远程当前目录下的文件test.cpp下载到本地当前目录的Project文件夹中。

    (2)文件上传

    put [-Ppr] local [remote]

    如:put /home/Xbingbing/Software/RHEL_5.5\ x86_64.iso /home/Xbing bing/Blog/

    将本地/home/Xbingbing/Software/目录下的ios文件传送到远程登陆主机的/home/Xbingbing/Blog/目录下。

    转载于:https://www.cnblogs.com/Xbingbing/p/8504818.html

    展开全文
  • sftp 安全文件传输

    千次阅读 2017-02-15 17:16:09
    参考网址: https://zhidao.baidu.com/question/437092733.html ... 1、如何在windows环境下用sftp 连接服linux务器 上传下载文件 【控制面板】-【程序】-【打开或关闭Windows功能】,弹出Windows功能窗

    参考网址: https://zhidao.baidu.com/question/437092733.html

    参考网址:http://www.cnblogs.com/xudong-bupt/p/3714483.html


    1、如何在windows环境下用sftp 连接服linux务器 上传下载文件

    	控制面板】-【程序】-【打开或关闭Windows功能】,弹出Windows功能窗口,里面有个tftp客户端。在前面打勾确定。然后	在cmd里就可以使用sftp了。

    C:\Users\ramma>sftp server
    user name :
    2、linux sftp 安全文件传输命令

    sftp 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。

    1.常用登陆方式: 

      格式:sftp <user>@<host>

      通过sftp连接<host>,端口为默认的22,指定用户<user>。

    2.查看sftp支持的命令

      使用help命令,查看支持的命令,如:

      sftp>help

       (其中命令前面有“l”表示本地执行,其他表示在所登录的远程主机上面执行)

    3.基本的使用

      sftp主要是用来传输文件的,包括上传文件(从本机到远程主机) ,下载文件(从远程主机到本机)。

      (1)文件下载

         get [-Ppr] remote [local]  

        如:get test.cpp ./Project/ 

          将远程当前目录下的文件test.cpp下载到本地当前目录的Project文件夹中。

      (2)文件上传

        put [-Ppr] local [remote]

        如:put /home/liu/Software/RHEL_5.5\ x86_64.iso /home/xudong/Blog/

          将本地/home/liu/Software/目录下的ios文件传送到远程登陆主机的/home/xudong/Blog/目录下。

      (3)其他命令

        可以使用命令还是有几个的,如ls、lls;cd、lcd;pwd、lpwd等。具体查看help输出吧。


    展开全文
  • 远程安全性传输功能一、安全性复制scp1、概述2、本地文件复制到服务器3、复制服务器的文件到本地4、本地目录复制到服务器二、安全性传输sftp1、概述2、查看可用命令3、打印服务器当前位置4、切换目录、查看文件5、...
  • 它类似于FTP,但它进行加密传输,比FTP有更高的安全性。 1.常用登陆方式:   格式:sftp @  通过sftp连接,端口为默认的22,指定用户。 2.查看sftp支持的命令  使用help命令,查看支持的命令,如:  sftp...
  • 它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。 1.常用登陆方式:   格式:sftp <user>@<host>  通过sftp连接<host>,端口为默认的22,指定用户<user>。 2.查看sftp支持的...
  • sftp

    千次阅读 2017-08-25 14:04:34
    sftp是Secure FileTransferProtocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp与 ftp有着几乎一样的语法和功能。SFTP为 SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。其实...
  • SFTP

    2019-06-19 10:08:07
    SFTP要求客户端用户必须由服务器进行身份验证,并且数据传输必须通过安全通道(SSH)进行传输数据。 * FTP要安装:Standard (PORT方式,主动模式),Passive (PASV,被动模式)。 * SFTP不要安装 sftp是ssh内含的...
  • Centos7搭建SFTP

    2020-11-25 14:16:17
    一、Sftp配置: 1.、sftp简介: 1.1、sftp是Secure FileTransferProtocol的缩写,安全文件传送协议,可以为传输文件提供一种安全的加密...(4)SFTP安全性非常高 (5)SSH软件已经包含SFTP安全文件传输子系统 .
  • sftp是ssh内含的协议(ssh是加密的telnet协议),只要sshd服务器启动了,它就可用,而且sftp安全性较高,它本身不需要ftp服务器启动。 sftp = ssh + ftp(安全文件传输协议)。 由于ftp是明文传输的,没有安全性,而...
  • 区别:sftp是ssh内含的协议(ssh是加密的telnet协议), 只要sshd服务器启动了,它就可用,而且sftp安全性较高,它本身不需要ftp服务器启动。 sftp = ssh + ftp(安全文件传输协议)。由于ftp是明文传输的, 没有...
  • 什么是 SFTP ? 在了解 SFTP 之前,我们先看看什么是 FTP 。...SFTP ,即 SSH 文件传输协议( SSH File Transfer Protocol ),或者说是安全文件传输协议( Secure File Transfer Protocol )。SFTP 是一个独...
  • Sftp和Ftp

    2010-02-08 16:17:00
    不同的是sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,而且sftp安全性较高,它本身不需要ftp服务器启动。 sftp = ssh ftp(安全文件传输协议)。由于ftp是明文传输的,没有安全性,而sftp基于ssh,传输...
  • SFTP安全规划配置

    2015-07-03 15:19:33
    直接说配置方法,上干货: 1、修改/etc/ssh/sshd_config 追加: #启用internal-sftp Subsystem sftp internal-sftp Match Group sftp 属于sftp组 ChrootDirector...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,179
精华内容 4,471
关键字:

sftp安全性