用openssh/sftp实现远程文件传输控制

客服端:winscp等ftp/sftp客户端

服务器:阿里云默认使用的openssh

需求:可以sftp远程传输文件到服务器固定文件夹下,不可远程ssh登录

步骤:

1. 建立系统用户ftpuser及组ftpgroup

useradd ftpuser

groupadd ftpgroup

2. 设置ftpuser密码

passwd ftpuser

然后输入密码

3. 设置ftpuser远程不能ssh登录

usermod -s /bin/false ftpuser

可以cat /etc/passwd查看系统用户的登录情况及主目录

4. 修改ftpuser主目录

usermod -d /mnt/xxx/

或者3、4步,统一用usermod -M -d /mnt/xxx/ -s /bin/false ftpuser

5. 编辑ssh配置文件,指定用户及目录

nano /etc/ssh/sshd_config,注释默认的Subsystem和UsePAM,并在最末尾添加以下几行(红字的)

UseDNS no
AddressFamily inet
PermitRootLogin yes
SyslogFacility AUTHPRIV
PasswordAuthentication yes

#--- 在UseDNS no这一行的下一行添加以下几行,不然报错,服务无法重启

Subsystem sftp internal-sftp
UsePAM yes
Match User ftpuser
ForceCommand internal-sftp
ChrootDirectory /mnt/xxx

AllowUsers root ftpuser #我用系统的sshd控制ssh远程登录,故也把ftpuser放入AllowUsers列表。

6. 重启sshd服务

service sshd restart

7. 测试ftpuser的ssh和sftp登录情况

ssh无法登录

sftp可以,默认列出/mnt/xxx文件夹

注意:

•ftpuser的用户目录和ssh配置文件里的目录一致

•ssh目录权限及所有者必须是755/root

•ftpuser得usermod里禁止ssh登录是/bin/false而不是/sbin/bash/nologin  (nologin是禁止了ssh和sftp)

参考:

http://blog.csdn.net/qq_35440678/article/details/52788808

https://www.cnblogs.com/xjnotxj/p/6912471.html

http://blog.csdn.net/kenight/article/details/36669679

原文地址:https://www.cnblogs.com/thingk/p/8418338.html

时间: 2024-08-01 09:36:14

用openssh/sftp实现远程文件传输控制的相关文章

linux学习笔记——打包、压缩、远程文件传输

############打包.压缩########################## 1.打包 (打包表示把一堆文件变成一个)tar            ##打包工具        -f        ##指定生成包的名字        -c        ##创建包        -v        ##显示创建过程        -t        ##查看包中内容        -x        ##解包        -r        ##追加文件到包中        -C  

Linux下远程文件传输命令——scp

SCP- secure copy (remote file copy program) 命令原型:  scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[[email protected]]host1:]file1 ... [[[email protected]]host2:]file2 命令描述: scp用于通过网

linux中ssh命令及scp远程文件传输

ssh命令: ssh  用户名@ip  远程管理指定Linux服务器 远程文件传输scp命令: scp -r 用户名@ip:源文件路径 本地路径      #下载文件 scp -r 本地文件 用户名@ip:上传路径        #上传文件

远程文件传输工具sftp、scp、rsync

一.scp 格式 scp [options] [[email protected]]host : /sourcefile /destpathscp [options] /sourcefile [[email protected]]host:/destpath 常用选项:- -C: 压缩数据流-r: 递归复制-p: 保持原文件的属性信息(有时会用到)-q: 静默模式-P PORT: 指明remote host的监听的端口 scp只时和临时的文件传输,其基于ssh之上,所以安全性比较有保证,但是功能

Bash远程文件传输命令scp

备份远程文件(远程——>本地) scp -r 远程用户名@ip:文件绝对路径 本地绝对路径 还原远程文件(本地——>远程) scp -r 本地路径 远程用户名@ip:远程绝对路径 如果SSH端口号有变化,则使用 scp -P port [email protected]…………:/dir

ssh 中 远程文件传输

scp 命令是 SSH 中最方便有用的命令了,试想,在两台服务器之间直接传送文件,仅仅用 scp 一个命令就完全解决了. 你可以在一台服务器上 以 root 身份运行 #scp servername:/home/ftp/pub/file1 . 这样就把另一台服务器上的文件 /home/ftp/pub/file1 直接传到本机器的当前目录下,当然你也可以用 #scp /tmp/file2 servername:/boot 把本机上的文件 /tmp/file2 送到另一台机器的 /boot 目录下.

跨国跨地域远程文件传输用什么好呢?

随着全球化及移动设备的普及,国内很多企业建立了自己海外的分支机构,或者和其他国家的企业建立起了合作关系.但就目前而言,我国市场上的大多数企业文件管理和文件存储方案都是针对本国企业而设计的,没有英文界面,没有海外服务器,无法满足跨国跨地域跨地域企业之间的文件传输需求.跨国跨地域文件传输面临着传输过程不安全和传输速度满的问题. 镭速云在国外均部署了数据中心,保证用户在世界各地都能访问镭速云,跨国文件传输快速.稳定.在确保文件保密安全的前提下,实现高速稳定传输,完全可以满足任何形式的跨国跨地域文件传输

Linux功能-远程文件传输

linux系统中,难免会遇到一些要将某文件通过网络传送给其他主机的情况,而恰好两台主机 都是linux系统的时候,我们就可以直接使用scp命令来传输文件到另一台主机了. scp命令用于在网络中安全的传输文件,格式为: scp [参数] 本地文件 远程账户@远程IP地址:远程目录

golang通过ssh实现远程文件传输

使用ssh远程操作文件, 主要是创建ssh, 直接上代码 import ( "fmt" "github.com/pkg/sftp" "golang.org/x/crypto/ssh" "net" "strconv" "time") func SftpConnect(user, password, host string, port int) (sftpClient *sftp.Clien