查看原文
其他

Linux CentOS6.8搭建sftp服务

JiekeXu JiekeXu DBA之路 2024-03-03
最近因公司工作需要用到sftp服务器,参考网上各种方法,但被网上各种方法尤其是权限设置问题搞得晕头转向,现在将自己搭建过程总结了一下,提供给大家希望有所帮助。

sftp是Secure FileTransfer Protocol的缩写,安全文件传输协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP


开始搭建sftp服务


第1歩,添加sftp用户并制定根目录:

useradd -d  /ygsoft/sftp  -s /bin/bash sftpuser

第2歩,修改密码:执行passwd sftpuser,然后输入密码,2次密码需一致即可 


第3歩,修改配置文件,执行vi /etc/ssh/sshd_config ,在里面添加如下信息:先注释掉以下一行

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


然后添加以下5行


Subsystem       sftp   internal-sftp

Match User sftpuser

#X11Forwarding no

#AllowTcpForwarding no

#ForceCommand internal-sftp


 第4歩,设置根目录的访问权限:

chmod -R 775 /ygsoft/sftp(可选)


 第5歩 可以省略,更改默认的22端口,找到配置文件

/etc/ssh/ssh_config和sshd_config,

vi ssh_config和sshd_config 修改Port为10022 注释掉22端口

第6歩,重启sshd进程,使配置生效:

service sshd restart


至此,sftp服务器就搭建好了,使用命令:sftp sftpuser@192.168.8.8登陆一下,登陆成功说明搭建成功。也可使用winsp客户端(filezilla)登陆即上传下载文件。

注:如果在配置文件里面增加了ChrootDirectory /ygsoft/sftp ,那么根目录的拥有者和属组必须是root,此时目录权限应这样设置:


 chown root:root/ygsoft/sftp


 chmod 755 /ygsoft/sftp


此时只有用户root对/ygsoft/sftp目录有写入权限,而使用sftpuser这个用户登陆后是没有写入权限的,故需要在/home/sftp/目录下再新建一个文件夹zjjk,并赋予sftpuser读写权限,这样才能完成sftp操作。


#mkdir -p /ygsoft/sftp/zjjk


# chmod -R 775 /ygsoft/sftp/zjjk


由此可见,在配置文件中增加了ChrootDirectory后,需要特别注意权限问题。

常见问题:



1sftp登录时报错:


 Connecting to192.168.8.8..


/etc/ssh/ssh_config:line 60: Bad configuration option: UseDNS


/etc/ssh/ssh_config:terminating, 1 bad configuration options


Couldn't readpacket: Connection reset by peer


 该问题是由dns解析导致,在客户端的配置文件/etc/ssh/ssh_config中查看是否有UseDNS no,如果有,注释掉该行。


2sftp连接时特别慢

而且警告:reverse mapping checking getaddrinfo for bogon [192.168.8..8] failed- POSSIBLE BREAK-IN ATTEMPT!


 可能原因:在sftp服务器上找到配置文件/etc/ssh/sshd_config,将GSSAPIAuthenticationyes 改为GSSAPIAuthentication no。



往期精彩回顾

Windows环境下基于Anaconda的Python3安装

分享一个手机版VIP浏览器观看各大VIP会员视频

今天,让我们来聊一聊微信(基于Python分析)

(端午节福利)各大影视VIP解析视频观看方法

推荐一个好用的PDF阅读器—悦书阅读器

Windows激活破解以及office安装破解

使用Python将图片变成铅笔素描

欢迎关注此公众号,写作不易,您的关注与点赞将是我不断写作的动力,点击最上方蓝字关注我吧!如果觉得此文对您有帮助,欢迎点赞、分享与转发!

继续滑动看下一个

Linux CentOS6.8搭建sftp服务

JiekeXu JiekeXu DBA之路
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存