linux建了sftp服务,然后加入到windowsAD域中,域中所有用户都能使用sftp。

linux建了sftp服务,然后加入到windowsAD域中,域中所有用户都能使用sftp。,第1张

你的意思是使用LINUX的DNS服务器,而你的客户机要登录到WINDOWSAD,是吧?从理论上可以。只要你在LINUX的DNS服务器上将WINDOWSAD所需要使用的所有记录均按照规则创建上。

查看 /etc/ssh/ssh_config的44、48、50、51、52行的配置,不行就重新装一下ssh
默认情况下,和ssh服务一同启用的。不需要额外配置。
sftp服务
执行命令 /SFTP本身没有单独的守护进程;sshd start 注意这里需要在绝对路径下执行sshd start;init,所以从某种意义上来说,而更像是一个客户端程序。
启动ssh服务;etc/d/,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接 *** 作,SFTP并不像一个服务器程序
大多数发行版sshd是打开的,也就是说可以直接用

从技术角度来分析,几个要求:
1、从安全方面看,sftp会更安全一点
2、线上服务器提供在线服务,对用户需要控制,只能让用户在自己的home目录下活动
3、用户只能使用sftp,不能ssh到机器进行 *** 作
提供sftp服务,可以用系统自带的internal-sftp,也可以使用vsftpd,这里需求不多,直接选用internal-sftp。
限制用户只能在自己的home目录下活动,这里需要使用到chroot,openssh 48p1以后都支持chroot,我现在用的是CentOS 63,自带的openssh已经是53p1,足够了。
可以输入:
# ssh -V
来查看openssh的版本,如果低于48p1,需要自行升级安装,不在这里具体介绍了。
假设,有一个名为sftp的组,这个组中的用户只能使用sftp,不能使用ssh,且sftp登录后只能在自己的home目录下活动
1、创建sftp组
# groupadd sftp
2、创建一个sftp用户,名为mysftp
# useradd -g sftp -s /bin/false mysftp
# passwd mysftp
3、sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftp的home为/data/sftp/mysftp
# mkdir -p /data/sftp/mysftp
# usermod -d /data/sftp/mysftp mysftp
4、配置sshd_config
编辑 /etc/ssh/sshd_config
# vim +132 /etc/ssh/sshd_config
找到如下这行,并注释掉
Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下几行
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
解释一下添加的几行的意思
Subsystem sftp internal-sftp
这行指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp
这行用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
当然,也可以匹配用户
Match User mysftp
这样就可以匹配用户了,多个用户名之间也是用逗号分割,但我们这里按组匹配更灵活和方便
ChrootDirectory /data/sftp/%u
用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动,chroot的含义,可以参考这里:>

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10278296.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-07
下一篇2023-05-07

发表评论

登录后才能评论

评论列表(0条)

    保存