linux搭建sftp

1 篇文章 0 订阅

1.创建sftp组

groupadd sftp

2.创建测试账户

useradd -g sftp -s /bin/false testuser

3.修改密码,(需要输入两次新密码)

passwd testuser

4.创建目录

kdir /opt/sftp

cd /opt/sftp

mkdir testuser

5.修改测试账户HOME路径

usermod -d /opt/sftp/testuser testuser

6.配置sshd_config

vi /etc/ssh/sshd_config

注释掉

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

文件最后添加

Subsystem       sftp    internal-sftp
Match Group sftp
ChrootDirectory /opt/sftp/%u
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no

  • 为什么用 internal-sftp 而不用默认的 sftp-server,这是因为:
  • 这是一个进程内的 sftp 服务,当用户 ChrootDirectory 的时候,将不请求任何文件, 更好的性能,不用为 sftp 再开一个进程。
  • Match Group sftp-users这一行是指定以下的子行配置是匹配sftp-users用户组的,多个用户组用英文逗号分隔。
  • ChrootDirectory %h该行指定Match Group行指定的用户组验证后用于chroot环境的路径,也就是默认的用户目录,比如/home/admin;也可以写明确路径,例如/data/www。
  • ForceCommand internal-sftp该行强制执行内部sftp,并忽略任何~/.ssh/rc文件中的命令。

7.设定Chroot目录权限

chown root:sftp /opt/sftp/testuser

chmod 755 /opt/sftp/testuser

8.重启sshd服务

service sshd restart

9.创建文件目录

mkdir /opt/sftp/testuser/upload

chown testuser:sftp /opt/sftp/testuser/upload

chmod 755 /opt/sftp/testuser/upload

10.连接到sftp

sftp testuser@127.0.0.1

 

附加一些sftp常用命令:

1. sftp user@ip

你要用sftp, 当然得登录到sftp服务器啊, 在linux的shell中执行上面的命令后, linux shell会提示用户输入密码, 我们就输入password吧。 这样就成功建立了sftp连接。

2. help

建立连接后, linux shell中的$编程了sftp>,  这也对。 现在执行以下help, 可以看看sftp支持哪些命令。

3. pwd和lpwd

pwd是看远端服务器的目录, 即sftp服务器默认的当前目录。  lpwd是看linux本地目录。

4. ls和lls

ls是看sftp服务器下当前目录下的东东, lls是看linux当前目录下的东东。

5. cd和lcd

cd可以切换sftp的目录, lcd可以切换linux本地目录

6. put a.txt

这个是把linux当前目录下的a.txt文件上传到sftp服务器的当前目录下。

7. get b.txt

这个是把sftp服务器当前目录下的b.txt文件下载到linux当前目录下。  

8. !command

这个是指在linux机器上执行command这个命令, 相当于lpwd lls lcd等命令, 比如!ls是列举linux当前目录下的东东, !rm a.txt是删除linux当前目录下的a.txt文件。

这个命令非常非常有用, 因为在sftp> 后输入命令, 默认值针对sftp服务器的, 所以执行rm a.txt删除的是sftp服务器上的a.txt文件, 而非本地的linux上的a.txt文件。

9. exit和quit

退出。

总之, 连接后, 有一个help命令, 足矣足矣。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值