前文参考:
FTP文件服务器配置介绍
https://www.gbase.cn/community/post/4391
HTTP文件服务器配置介绍
https://www.gbase.cn/community/post/4397
HDFS服务器配置介绍
https://www.gbase.cn/community/post/4402
今天给大家介绍下SFTP服务器配置,SFTP服务无需布署额外的软件包,开启sshd服务即可。
1)查看是否已启动sshd服务
# service sshd status
openssh-daemon (pid 2243) is running…
2)默认配置的目录访问。
使用默认配置时,sshd不限制用户的目录访问。用户通过sftp登录后,可以在有访问权限的任何目录间跳转。在这种情况下,以下加载语句的URL中的文件路径为系统的绝对路径:
load data infile ‘sftp://gbase:gbase@192.168.10.114/opt/data/test.tbl’into table test.t data_format 3;
3)修改sshd默认配置。
当集群并发加载任务数和单任务最大加载机数较大时,会出现sftp文件加载失败的情况,此时可按以下方式修改sshd配置文件。
编辑/etc/ssh/sshd_config文件
# vi /etc/ssh/sshd_config
按以下内容修改配置文件
# MaxStartups的值表示为“start:rate:full”,默认值为10:30:100,当未认证连接数达到start(10)时,新的连接尝试有“rate/100” (30%)的可能会被sshd拒绝,当未认证连接数达到full(100)时,所有新的连接尝试都会被拒绝。
# 在集群最大并发加载任务数为N,单加载任务最大加载机数(max_data_processors)为M时MaxStartups的推荐值为M*N+10:30:M*N*2
# MaxStartups 10:30:100
MaxStartups 20:30:100
出于安全原因,希望对sftp登录用户的访问权限进行限制,只能让用户在自己的home目录下活动。
启用sshd目录锁定功能需要使用到chroot,openssh 4.8p1以后都支持chroot,可用以下命令检查当前系统的openssh版本。
# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
编辑/etc/ssh/sshd_config文件
# vi /etc/ssh/sshd_config
按以下内容修改配置文件
# override default of no subsystems
# 修改默认子系统为internal-sftp
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
# Example of overriding settings on a per-user basis
# Match User sftp表示以下规则仅匹配于名称为sftp的用户,如果需要匹配多个用户名,多个用户名间用逗号分隔。也可用Match Group sftp来匹配名称为sftp的组,同样如果需要匹配多个组,多个组名间用逗号分隔
Match User sftp
# X11Forwarding no
# AllowTcpForwarding no
# 强制执行进程内sftp server,忽略~/.ssh/rc文件中的命令
ForceCommand internal-sftp
# 用chroot将用户的根目录指定到%h,%h代表用户的home目录,可选的参数还有%u,代表用户名
ChrootDirectory %h
注意:sftp目录的权限配置要点
- 由ChrootDirectory指定的目录开始一直向上到系统根目录为止的目录拥有者都只能是root。
- 由ChrootDirectory指定的目录开始一直向上到系统根目录为止都不可有群组写入的权限,即权限值不能高于755。
4)配置完成后重启sshd服务
# service sshd restart
在已配置目录锁定的情况下,以下加载语句的URL中的文件路径为系统的相对路径,test.tbl的绝对路径应为/home/gbase/opt/data/test.tbl
load data infile ‘sftp://gbase:gbase@192.168.10.114/opt/data/test.tbl’into table test.t data_format 3;
以上就是今天的内容,感谢阅读!