精华内容
下载资源
问答
  • sftp服务器连接
    千次阅读
    2020-11-10 16:36:08

    2、如果你链接服务器的时候出现下面的提示:

    Write failed: Broken pipe
    Couldn’t read packet: Connection reset by peer
    这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。注意以下两点原则:

    目录开始一直往上到系统根目录为止的目录拥有者都只能是 root,用户组可以不是 root。

    目录开始一直往上到系统根目录为止都不可以具有群组写入权限

    上面2点一定注意,仔细检查。我就是因为这个问题,导致一直有这个问题。仔细检查配置后,解决问题。

    更多相关内容
  • 怎么在一个SFTP服务器连接另一个SFTP服务器并且将另一个SFTP服务器的文件导入数据库
  • 连接sftp服务器

    2018-07-12 22:06:27
    连接sftp服务器、方法以写好、只需要传入几个参数即可调用、附加下载文件、亲测有效
  • windows10系统搭建sftp服务器
  • NULL 博文链接:https://dannyhz.iteye.com/blog/2386954
  • .net操作sftp服务器

    2020-12-22 17:01:17
    因为项目的需要,整理了一段C#操作sftp的方法。  依赖的第三方类库名称为:SharpSSH 1.1.1.13.  代码如下: 1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using ...
  • 连接sftp服务器1

    2021-05-13 09:48:03
    } } /** * 连接sftp服务器 * * @param host 主机 * @param port 端口 * @param username 用户名 * @param password 密码 * @return */ public ChannelSftp connect(String host, int port, String username, String...
    package up.cpc.jobs.utils;
    
    
    import com.jcraft.jsch.*;
    import com.jcraft.jsch.ChannelSftp.LsEntry;
    import org.apache.logging.log4j.Logger;
    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Properties;
    import java.util.Vector;
    
    public class SFTPUtils {
    
        private static final Logger LOG = org.apache.logging.log4j.LogManager.getLogger(SFTPUtils.class);
    
        private static final String host = "baidu.com";
        private static final int port = 8080;
        private static final String username = "zhangsan";
        private static final String password = "123456";
        public static final String directory = "/";
    
        private static ChannelSftp sftp;
    
    
        private static SFTPUtils instance = null;
        private SFTPUtils() {
        }
        public static SFTPUtils getInstance() {
            if (instance == null) {
                if (instance == null) {
                    instance = new SFTPUtils();
                    sftp = instance.connect(host, port, username, password);   //获取连接
                }
            }else {
                sftp = instance.connect(host, port, username, password);   //获取连接
            }
            return instance;
        }
    
        public static void close() throws JSchException {
            if(sftp.isConnected()){
                sftp.disconnect();
                sftp.getSession().disconnect();
            }
    
    
        }
    
    
        /**
         * 连接sftp服务器
         *
         * @param host     主机
         * @param port     端口
         * @param username 用户名
         * @param password 密码
         * @return
         */
        public ChannelSftp connect(String host, int port, String username, String password) {
            ChannelSftp sftp = null;
            try {
                JSch jsch = new JSch();
                jsch.getSession(username, host, port);
                Session sshSession = (Session) jsch.getSession(username, host, port);
                sshSession.setPassword(password);
                Properties sshConfig = new Properties();
                sshConfig.put("StrictHostKeyChecking", "no");
                sshSession.setConfig(sshConfig);
                sshSession.connect();
                LOG.info("SFTP Session connected.");
                Channel channel = sshSession.openChannel("sftp");
                channel.connect();
                sftp = (ChannelSftp) channel;
                LOG.info("Connected to " + host);
            } catch (Exception e) {
                LOG.error(e.getMessage());
            }
            return sftp;
        }
    
        /**
         * 上传文件
         *
         * @param directory  上传的目录
         * @param uploadFile 要上传的文件
         */
        public boolean upload(String directory, String uploadFile) {
            try {
                sftp.cd(directory);
                File file = new File(uploadFile);
                FileInputStream fileInputStream = new FileInputStream(file);
                sftp.put(fileInputStream, file.getName());
                fileInputStream.close();
                return true;
            } catch (Exception e) {
                LOG.error(e.getMessage());
                return false;
            }
        }
    }
    
    展开全文
  • 众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的.必要条件:你的openssh-server版本至少是4.8p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成。如何查看自己服务器上的...

    众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的.

    必要条件:

    你的openssh-server版本至少是4.8p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成。

    如何查看自己服务器上的ssh版本?大家可以尝试以下命令:

    ssh -V

    一、安装

    采用openssh实现sftp上传操作。将所有sftp用户组的用户都锁定在指定目录下,禁止SSH登录,可以提高安全性。

    1. OpenSSL安装,版本要高于0.9.6,centos5.4默认可以不用安装。

    # wget http://www.openssl.org/source/openssl-1.0.0.tar.gz

    # tar zxvf  openssl-1.0.0.tar.gz

    # cd openssl-1.0.0

    # ./config

    # make

    # make install

    2. OpenSSH安装,版本要高于4.8sp1

    # rpm -q openssh

    openssh-4.3p2-36.el5

    说明: centos5.4上需要安装openssh软件包,openssl版本高于0.9.6不需要安装

    # wget http://carroll.cac.psu.edu/pub/OpenBSD/OpenSSH/portable/openssh-5.4p1.tar.gz

    # tar zxvf openssh-5.4p1.tar.gz

    # cd openssh-5.4p1

    # ./configure  --with-ssl-dir=/usr/local/ssl   #openssl的安装位置

    # make

    # make install

    二、配置

    (1) 修改sshd启动脚本

    # vi /etc/init.d/sshd

    SSHD=/usr/sbin/sshd

    改为

    SSHD=/usr/local/sbin/sshd

    (2) 修改sshd配置文件,tar包安装的配置文件位置在/usr/local/etc/sshd_config

    配置sftp服务器步骤

    1、首先添加sftp的用户组,sftp_users为用户组的名称:

    groupadd sftp_users

    2、向sftp_users用户组中添加用户:

    useradd test -g sftp_users

    useradd -s /bin/false -G sftp_users test

    注意这里我们将test用户的shell设置为/bin/false使他没有登陆shell的权限

    对于已经存在的用户,使用usermod命令进行修改

    3、修改用户名的密码:

    passwd 用户名

    密码

    确认密码

    4、创建用户的根目录并设置其拥有者和组:

    cd /home

    mkdir test(文件夹名称)

    chown root:sftp_users(分组名根目录的文件夹名称)

    5、修改权限(读:4  写:2执行:1 -->> 755 第一位代表当前用户的权限值;第二位代表当前用户组用户的权

    限值;第三位代表其它用户的权限值):

    chmod 755 文件夹名称

    6、修改sshd的配置文件内容:

    vim /etc/ssh/sshd_config

    修改的内容:

    将:#Subsystem sftp /usr/libexec/openssh/sftp-server

    修改为:Subsystem sftp internal-sftp

    在sshd_config文件最后添加:

    Match Group sftp_users

    X11Forwarding no

    AllowTcpForwarding no

    ChrootDirectory %h

    ForceCommand internal-sftp

    此处:

    Match Group sftp_users 该参数指定以下的行将仅仅匹配sftp_users组中的用户

    ChrootDirectory %h 该参数指定用户验证后用于chroot环境的路径(默认的用户家目录)。对于用户 test,该路径就是/home/test。

    ForceCommand internal-sftp 该参数强制执行内部sftp,并忽略任何~/.ssh/rc文件中的命令。

    也可以单独分开配置

    Match User 用户名

    X11Forwarding no

    ForceCommand internal-sftp

    ChrootDirectory /home/根目录文件夹名

    如果有多个用户配置则继续在后面添加

    目录权限设置上要遵循2点:

    ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;

    ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755。

    如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。

    设置目录的属主和权限:

    [root@Oracle-2 ~]# chown root:root /home/sftp  /home/sftp/blog

    [root@Oracle-2 ~]# chmod 755 /home/sftp /home/sftp/blog

    由于上面设置了目录的权限是755,因此所有非root用户都无法在目录中写入文件。我们需要在ChrootDirectory指定的目录下建立子目录,重新设置属主和权限。以blog目录为例:

    [root@Oracle-2 ~]#  mkdir /home/sftp/blog/web

    [root@Oracle-2 ~]# chown blog:sftp /home/sftp/blog/web

    [root@Oracle-2 ~]#  chown 775 /home/sftp/blog/web

    设置完成后,我们再用blog用户登录sftp,发现这次可以正常登录了,并且可以访问的根目录控制在了/home/sftp/blog/下,达到了我们的要求。

    7、 重启sshd服务

    service sshd restart

    展开全文
  • 一个 SSH 服务器 freeSSHD 是非常有用的应用程序将使用户能够保护他们的互联网或网络连接的安全
  • 该包基于Apache的sshd搭建sftp服务器,可以实现登录密钥验证,支持sftp操作和linux命令操作
  • FTP是一种文件传输协议,服务端和客户端可视化软件很多,只要支持相同的协议标准基本可以互相连通。...以下使用linux服务器部署SFTP服务端,win10下安装XshellFTP客户端,进行FTP文件传输的测试。 一、linu...

    FTP是一种文件传输协议,服务端和客户端可视化软件很多,只要支持相同的协议标准基本可以互相连通。

    SFTP相对于FTP在数据传输中添加了数据加密,以损失数据传输效率为代价提高数据传输安全性。但加密解密等操作均为CPU时间,相对于文件的IO传输时间性能损失的占比不大。

    以下使用linux服务器部署SFTP服务端,win10下安装XshellFTP客户端,进行FTP文件传输的测试。

    一、linux服务器部署SFTP服务

    1.1 检查环境:

    SFTP在linux系统中是自带的,无需额外安装。不放心的话做如下检查,以CentOS为例。

    rpm -qa | grep openssh clear

    ssh -V

    如果没有发现openssh,那就去下载吧。。。如果ssh版本在4.8以下,需升级版本

    sudo yum update -y openssh-server

    1.2 添加SFTP专用的用户组和用户

    以下添加my-sftp-group用户组,sftpuser1、sftpuser2两个用户,并分别指定用户根目录和sftp服务目录权限

    sudo groupadd my-sftp-group    # 创建用户组

    sudo useradd -g my-sftp-group -m sftpuser1   #创建用户并指定组

    sudo useradd -g my-sftp-group -m sftpuser2

    root用户下  passwd sftpuser1 输入密码(可能要两次,也可能提示密码未通过字典检查),如下图所示密码已设置成功

    passwd sftpuser2  #root用户下设置新用户密码

    检查用户所在组是否设置成功:

    groups sftpuser1  /  groups sftpuser2

    如果发现用户组设置错误,移动用户组的指令 :

    usermod -g my-sftp-group sftpuser1   /   usermod -g my-sftp-group sftpuser2

    1.3 创建ChrootDirectory及sftp操作文件夹

    ChrootDirectory 是配置sftp连接之后进入的根目录。我打算配置为 /data/sftpdata/%u最后一位%u是取用户名,为了让不同的用户登录之后进入到不同的文件夹,避免看到其他用户的数据。

    确保ChrootDirectory中配置的路径从系统根目录第一个文件夹到最后一个文件夹所有者都是root,权限是755,否则sftp启动后远程连接会报错。但问题也很明显,sftp连接上来的用户由于没有根目录的写权限所以不能在根目录创建文件或文件夹,所以我们要给定一各路径,提前配置好用户权限。

    假设我们使用 /data/sftpdata/sftpuser1/upload 这个文件夹来作为 sftpuser1这个用户能够操作的文件路径。则从data文件夹开始到sftpuser1文件夹,所有者都必须是root权限至少755,最后的update文件夹所有者设置为sftpuser1(用来登录sftp的用户),权限可以设置成7**

    以下为参考指令,截图为创建过程

    chown 用户:组 文件(夹)路径    # 修改文件(夹)的所有者

    chmod 745 文件(夹)路径   # 修改权限:第一个数字是所有者权限,第二个数字是所属组用户权限,第三个数字是其他用户权限。每个数字是三位二进制数,分别表示读、写、执行。7=4+2+1即读写执行都有,5=4+1即读和执行,4则只有读权限。

    留意,ChrootDirectory路径中的文件夹的权限最后一位其他用户权限中至少给个读和执行权限,不然sftpuser1用户登录sftp之后就连工作根目录都无法读和执行命令。

     

    如果你对用户所有者、权限、sftp的ChrootDirectory工作根目录不是很熟悉,建议跟我保持完全一致,避免出现各种权限错误。

    1.3 修改配置文件

    vim /etc/ssh/sshd_config  文件尾补充内容

    vim /etc/selinux/config   修改SELINUX属性参数

    照着敲吧,粘贴到网页上会有格式问题。

    1.4 重启ssh

    systemctl restart sshd  (CentOS的指令,ubuntu可能有所不同,自行百度吧)

    1.5 本地测试一下

    二、win10下安装FlashFTP客户端

    2.1 首先win10本身是自带sftp的,在cmd命令行中输入sftp user_name@ip 然后输入密码就可以连接远程sftp服务器了。

    命令行连接sftp服务之后,需要使用指令进行文件传输操作,比如put指令get指令等。

    2.2 XshellFTP客户端下载安装

    网上很多绿色版和破解版,自行百度吧。

    百度网盘备份:链接:https://pan.baidu.com/s/147RPyw6zzhu-V0IjokhISQ 提取码:44dk  

     

    三、sftp客户端与服务端进行文件传输

    客户端:win10 下路色版 XshellFTP

    服务端:linux 下 SFTP服务

    打开XshellFTP窗口,左上角新建

    连接成功!

    左侧是本地文件系统,右侧是sftp文件系统。双击文件则直接进行文件传输。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • sftp连接服务器失败

    千次阅读 2021-05-11 05:28:01
    实际工作例子:在windows上用...换用linux上的sftp命令来连接时,出现了一些错误信息:[root@TS-3-206 ~]# sftp -o Port=5555 root@192.168.18.15:/usr/local/gdns/Connecting to 192.168.18.15...root@192.168...
  • 连接SFTP服务器 Whoosh . connect ( { hostname : 'sftp.example.com' , port : 22 , username : 'fred' , password : 'secret' } , ( err , client ) => { // profit :) } ) 有关连接参数的完整列表,请...
  • 在用Winscp 连接Ubuntu时出现: 检查:Ubuntu上没有安装sshd: 解决步骤 1,sudo apt-get install yum 安装 ,中间有输入:Y 2,sudo apt-get install openssh-server,中间有输入:Y 3,sudo ps -e |grep ssh ...
  • sftp无法连接服务器 Pam

    千次阅读 2019-10-24 19:25:49
    客户无法通过SFTP登录服务器 查看ssh日志显示 cat/var/log/message pam_tally2(sshd:auth): user sftp_xxx (1002) tally 5788, deny 10 原因:pam策略起作用;客户端连续10次 Authentication failure 就被锁定了...
  • windows 10系统搭建sftp服务器【详细】

    万次阅读 2020-04-07 10:05:54
    一、下载sftp软件 1、下载sftp软件,我用的版本是:1.3.1,可以从百度云快速下载, 链接:https://pan.baidu.com/s/12TCh9a3YevUOpVLVrx2VWg 提取码:65xh 复制这段内容后打开百度网盘手机App,操作更方便哦 也...
  • 在本教程中,我们将引导您在Ubuntu服务器上设置SFTP。本文分为以下几节:创建一个SFTP组和用户。安装SSH守护程序。配置SSH守护程序。使用命令行登录到SFTP。在开始之前,您需要确保使用以下命令更新服务器。以下命令...
  • 如果协议选择默认的FTP-文件传输协议,会连接失败并报错“无法和SFTP服务器建立FTP连接,请选择合适的协议”。2.输入主机ip与端口port,我们可以通过命令ifconfig获取主机ipaddress,通过命令netstat-aptn知道自己...
  • JSCH连接SFTP服务器

    2020-07-20 18:05:03
    1、添加依赖jsch依赖 <dependency> <groupId>... } } 注意事项: 如果端口没有特别配置,SFTP服务器端口默认为:22 高质量博文-wiliam-me
  • Winscp无法连接SFTP服务器

    千次阅读 2020-08-26 12:04:20
    Winscp无法连接SFTP服务器 适用于windows下SFTP服务器 适用于winscp连接显示拒绝lianjie 适用于sftp admih@127.0.0.1 登陆显示Permission denied, please try again 解决方案: 1、通过登陆管理服务器检查用户...
  • 该文档介绍了如何在linux系统配置sftp服务器的步骤,大家感受一下。
  • 在centos上连接sftp服务器

    千次阅读 2021-11-23 11:37:11
    centos上连接远程sftp 1、连接命令 sftp -P 22 username@192.168.1.110 上面的22是端口,username是用户名,后面的192.168.1.110是sftp的ip 2、输入密码 然后如下图这样就是连接成功 3、sftp常用命令 连接成功后有...
  • 配置sftp服务器

    2021-08-11 03:36:34
    配置sftp服务器 内容精选换一换为加强对系统数据的容灾管理,云堡垒机支持配置日志备份,提高审计数据安全性和系统可扩展性。本小节主要介绍如何在系统配置FTP/SFTP服务器参数,将日志远程备份至FTP/SFTP服务器。...
  • Java连接SFTP服务器步骤 调用测试(这里是在service层中进行测试),相关的连接配置信息可在application.yml文件里面配置。 application.yml中的配置信息: 使用@Value注解去进行单个从yml文件中获取 1.创建一个...
  • 有一天我要连接到我的 Web 服务器。我使用FileZilla连接到 FTP 服务器。当我输入主机名和密码连接服务器后,我得到了下面的错误(主机名,用户名,密码都是对的)。 Error: Cannot establish FTP connection to an ...
  • 主要介绍了Java使用SFTP上传文件到服务器的简单使用,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • 连接sftp服务器命令

    千次阅读 2018-08-12 20:40:29
    连接sftp服务器 sftp -oIdentityFile=/home/work/.ssh/own_isa -oPort=57000 SFTP_ACCOUNT@192.168.0.1 -v -oIdentityFile 指定连接sftp服务需要的私钥位置 -oPort 指定sftp服务连接端口 SFTP_ACCOUNT是...
  • Linux登录sftp服务器

    2022-07-11 18:16:43
    1、使用工具sftp sftp -P {port} {username}@{ip} 回车输入密码2、使用工具lftp lftp sftp://{username}@{ip}:{port} 回车输入密码
  • ssh能够连接sftp不能连接的解决方法昨天开始用FileZilla一直不能登录远程的服务器,ssh的登录就OK,因为是服务器,也不敢乱动。查了好多资料终于解决了。 首先,查看一下系统的安全日志 www.2cto.com[root@...

空空如也

空空如也

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

sftp服务器连接