网上的一系列部署总有问题,记录下部署配置成功案例。
一、部署sftp服务
(本质是sftp服务使用ssh中的协议,默认端口也跟随ssh服务的配置)
1、创建用户组
2、创建用户testsftp
并将用户添加到刚创建的用户组,拒绝用户登录shell
3、指定sftp的家目录
自选人意位置,我这里就新建一个sftp的家目录为/opt/sftp
4、配置ssh服务
Match Group sftp:匹配sftp组的用户,如果有多个组,用逗号分隔。也可以使用"Match User mysftp"匹配用户,多个用户之间也是用逗号分隔。ChrootDirectory /opt/sftp:将用户的根目录指定到/opt/sftpForceCommand internal-sftp:指定sftp命令。X11Forwarding no:是否允许用户可以使用端口转发。
打开密钥登录功能
可以禁用密码方式登录(根据自身实际需求设置)
保存退出。然后检验sshd配置,如有错,根据错误提示修正
5、设定Chroot目录权限
6、重启sshd服务
照上面设置后,在重启 sshd 服务后,用户sftp已经可以登录(只能使用 sftp 登录,使用 ssh 登录不了)。
但使用chroot 指定根目录后,根应该是无法写入的,所以要新建一个目录供 sftp上传文件。
这个目录所有者为 sftp,所有组为sftp,所有者有写入权限,而所有组无写入权限。
命令如下:
二、设置免密登录
本质是将需要登录的服务器的公钥数据加载到需要免密登录的服务器的authorized_keys文件中。【实际是配置ssh免密】)
1、在需要连接sftp的服务器上执行
(注意选择好使用用户)
回车两次生成rsa公私钥文件,可打开/home/用户/.ssh/文件夹查看,复制id_rsa.pub内容准备。
2、在部署sftp服务器上
cd到用户sftp的账户家目录,新建用户默认家用户路径在/home/用户名。
新建一个.ssh文件夹,在.ssh文件夹内新建名为authorized_keys的文件,将复制过来的id_rsa.pub中的内容增加到authorized_keys文件中。
此处注意,
需要更改.ssh和authorized_keys的owner和group,因为sftp用户只支持sftp协议,所以需要在root账户下创建.ssh和authorized_keys后,执行一下命令:
接下来就可以sftp sftp@sftp服务器IP,进行直接进行登录了。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:Linux下如何创建SFTP账号Linux下sftp登录失败的解决方案Linux如何通过代理连接sftpLinux中sftp常用命令整理linux的sftp复制传输文件方式