linux密码登陆时加入自己登陆验证模块(pam),xshell工具可用,xftp工具使用无响应

继前几天的文章,linux密码登陆时加入自己登陆验证模块(pam),继续发布此文章。

按照“linux密码登陆时加入自己登陆验证模块(pam)”配置后,使用xshell进行ssh登陆很顺利,然后xftp登陆却不顺利,密码验证通过后,xftp工具无响应。

 

排查原因:

第一步,打开sftp-server的日志

1、修改ssh的配置

vi /etc/ssh/sshd_config
在146行左右修改如下配置

Subsystem sftp /usr/libexec/openssh/sftp-server -l DEBUG3 -f local5
sftp-server的参数用法详情参考'man SFTP-SERVER'
注:如文件中已经存在如下配置,请先注释


2、修改rsyslog配置
vi /etc/rsyslog.conf
在最后增加如下配置
auth,authpriv.*,local5.* /var/log/sftp.log
3、重启服务 service rsyslog restart service sshd restart
4、查看日志 tail -f /var/log/sftp.log

 

 

 发现修改pam登陆方式后,sftp-server没有进行relpath步骤及后面的目录打开步骤(读取目录列表)。

 

 指定使用sftp服务使用系统自带的internal-sftp,就可以顺利登陆了。


vi /etc/ssh/sshd_config
在146行左右修改如下配置

Subsystem sftp /usr/libexec/openssh/internal-sftp

从功能的角度来看,sftp-server和internal-sftp几乎完全相同。 它们是使用相同的源代码构建的

internal-sftp的另一个优点是性能,因为没有必要为它运行新的子进程。

可以为internal-sftp进一步配置,配置如下:

新增sftp服务器及用户


新增sftp组
  groupadd sftp
添加用户,并更改用户密码
  sudo useradd -g sftp -s /sbin/nologin -M xxx
  sudo passwd xxx

更改目录权限
  sudo mkdir –p /data/xxx
  sudo chown xxx:sftp /home/data/xxx
更改sftp设置
  sudo vi /etc/ssh/sshd_config

  #注释掉这行
  #Subsystem sftp /usr/libexec/openssh/sftp-server
  添加这行
  Subsystem sftp internal-sftp  #指定使用sftp服务使用系统自带的internal-sftp,如果不添加,用户无法通过sftp登录。
  #添加在配置文件末尾
  Match User sftpuser#匹配用户,如果要匹配多个组,多个组之间用逗号分割
  ChrootDirectory /home/data/ #用chroot将指定用户的根目录  /home/data 一定要归属root
  ForceCommand internal-sftp #指定sftp命令
  X11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
  AllowTcpForwarding no 重启服务 systemctl restart sshd.service

 

参考:

指定使用sftp服务使用系统自带的internal-sftp  https://www.jianshu.com/p/186a8fa0237f

SFTP配置 https://blog.csdn.net/zhichao_qzc/article/details/80301994

【OpenSSH】internal-sftp和sftp-server之间的区别和联系什么?   https://www.jianshu.com/p/f24d8ca565d7    

posted @ 2020-03-10 15:30  LiuYanYGZ  阅读(772)  评论(0编辑  收藏  举报