Linux6.8搭建sftp服务

      最近因公司工作需要用到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 Usersftpuser

#X11Forwarding no

#AllowTcpForwardingno

#ForceCommandinternal-sftp

 第4歩,设置根目录的访问权限:chmod 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 775 / ygsoft/sftp/zjjk

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


 常见问题:

1、sftp登录时报错:

 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,如果有,注释掉该行。

 2、sftp连接时特别慢,而且警告:reverse mapping checking getaddrinfo for bogon [192.168.8..8] failed- POSSIBLE BREAK-IN ATTEMPT!

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


 





  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
搭建LinuxSFTP(Secure File Transfer Protocol)服务器需要以下步骤: 1. 安装OpenSSH服务器:首先要确保在Linux系统上安装了OpenSSH服务器。可以使用以下命令进行安装: ``` sudo apt-get install openssh-server ``` 2. 创建SFTP用户:使用以下命令创建一个新的用户,并将其用户根目录设置为SFTP目录: ``` sudo adduser sftp_user sudo usermod -d /sftp_folder sftp_user ``` 3. 配置OpenSSH服务器:编辑OpenSSH服务器的配置文件。可以使用以下命令打开配置文件: ``` sudo nano /etc/ssh/sshd_config ``` 在文件中找到以下行并取消注释(删除行首的#符号),并进行相应的修改: ``` Subsystem sftp internal-sftp Match User sftp_user ForceCommand internal-sftp ChrootDirectory /sftp_folder PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no ``` 4. 重启OpenSSH服务器:完成配置后,使用以下命令重启OpenSSH服务器以应用更改: ``` sudo systemctl restart sshd ``` 5. 生成RSA密钥对(可选):可以为SFTP服务器生成RSA密钥对,以增强安全性。使用以下命令生成密钥对: ``` ssh-keygen -t rsa ``` 6. 配置SFTP用户的公钥:将生成的公钥(id_rsa.pub)复制到SFTP用户主目录的.ssh文件夹中,并将其重命名为authorized_keys: ``` sudo mkdir /sftp_folder/sftp_user/.ssh sudo cp id_rsa.pub /sftp_folder/sftp_user/.ssh/authorized_keys sudo chown sftp_user:sftp_user /sftp_folder/sftp_user/.ssh/authorized_keys ``` 确保.ssh文件夹和authorized_keys文件的权限正确设置: ``` sudo chmod 700 /sftp_folder/sftp_user/.ssh sudo chmod 600 /sftp_folder/sftp_user/.ssh/authorized_keys ``` 7. 完成:现在,您已经成功搭建了一个具有公私钥认证的SFTP服务器。可以使用SFTP客户端连接到该服务器并进行文件传输了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值