Linux系统上配置SFTP服务

SSH

  • SSH协议(Secure Shell,安全外壳)是一种需要进行加密和认证的,用于远程访问及文件传输的网络安全协议。
    SSH基于加密和认证的特性可以为用户提供更强大的安全保障机制,在用户使用不安全的网络环境登录设备时,SSH能够有效保护设备不受IP地址欺诈、明文密码截取等攻击。
  • SSH协议默认使用TCP 22号端口

SFTP

  • SFTP(SSH File Transfer Protocol)是一种基于SSH(安全外壳)的安全的文件传输协议,使用SFTP协议可以在文件传输过程中提供一种安全的网络的加密算法,从而保证数据的安全传输。
  • SFTP在Linux操作系统中,默认的端口客是22,传输提供了密码和密钥验证机制,可以有效防止传输过程的威胁和攻击。

配置SFTP

配置SFTP之前,首先要安装SSH,即安装OpenSSH。

安装OpenSSH

[root@localhost ~]# yum install openssh-server
Last metadata expiration check: 0:11:41 ago on Sun 05 Mar 2023 09:03:07 PM EST.
Package openssh-server-8.0p1-4.el8.x86_64 is already installed.
>>>>>>>>>>>>>> 中间的安装过程省略 <<<<<<<<<<<<<<
Upgraded:
  openssh-8.0p1-13.el8.x86_64                     openssh-clients-8.0p1-13.el8.x86_64             
  openssh-server-8.0p1-13.el8.x86_64             

Complete!
[root@localhost ~]# 

配置sshd_config配置文件

sshd_config文件一般在目录 /etc/ssh/ 下面。如下所示

[root@localhost ~]# cd /etc/ssh/
[root@localhost ssh]# ls -n *_config
-rw-r--r--. 1 0 0 1531 3月  16 2023 ssh_config
-rw-------. 1 0 0 3158 10月 23 16:33 sshd_config
[root@localhost ssh]#

打开文件如下:

# the setting of "PermitRootLogin prohibit-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and KbdInteractiveAuthentication to 'no'.
UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# override default of no subsystems
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp

# Example of overriding settings on a per-user basis
Match User sftptest
X11Forwarding no
AllowTcpForwarding yes
PermitTTY no
ForceCommand internal-sftp
  • 注释掉 Subsystem sftp /usr/libexec/openssh/sftp-server 配置,然后在下一行写上 Subsystem sftp internal-sftp。注释行的意思是,需要使用一个可执行的文件sftp-server来开启SFTP服务,而新加的行是使用系统自带的internal-sftp来开启SFTP服务。我们这里使用系统内部自带的。
  • 然后Math user 后跟SFTP用户,即指定那个用户可以登陆SFTP服务,多个时,可以用用户组的方式,书写方式Math Group 用户组。sftptest是我新建的系统用户。
  • AllowTcpForwarding yes的意思是允许长连接,可默认,不用修改
  • ForceCommand internal-sftp 使用internal-sftp命令
  • 其它默认就可以了

以上就配置号了SFTP服务。

重启SSH服务

[root@localhost ssh]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
[root@localhost ssh]# 

测试连接

[root@localhost ssh]# sftp sftptest@127.0.0.1
(sftptest@127.0.0.1) Password: 
Connected to 127.0.0.1.
sftp> 

这样就连接上了。

注意,在新建用户后对于用户的根目录,或是指定的SFTP根目录执行修改权限的命令 chmod 755 根目录。有时这个也会引发无法登陆的问题。

使用另一个服务器上的FileZilla客户端进行连接测试

filezilla连接成功

好了,Linux服务器上配置SFTP服务就分享到这里,感谢翻阅,希望帮到你。

  • 1
    点赞
  • 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
发出的红包

打赏作者

枫叶2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值