创建sftp账号

1、 root ssh免密登录

即 b服务器的root,在别的服务器用root, ssh免密登录 b服务器

  1. 在a服务器这台机器上输入:ssh-keygen,如有提示,按回车,生成a服务器这台机器的公钥和私钥。生成的公钥和私钥在root/.ssh目录下。
    id_rsa是私钥,id_rsa.pub是公钥。
  2. 在a服务器这台机器上输入:ssh-copy-id 用户名@服务器b的ip 按回车,将刚刚a服务器这台机器的公钥复制到bb服务器这台机器的用户目录下,保存在b服务器的 root/.ssh/authorized_keys文件中。这个文件的内容与生成的公钥id_rsa.pub是一样的。
  3. 输入b服务器这台服务器的登录密码,这时免密配置成功。
  4. 在a服务器客户端这台机器上输入:ssh 192.168.56.101,再也不用密码了
				
1、ssh-keygen  			        	在客户端生成一对公钥和私钥
2、ssh-copy-id  用户名@ip地址			地址将公钥复制到服务器
3、ssh  用户名@ip地址					    地址登录的另一台主机

2 普通户用免密登录

即 b服务器的 普通用户 在别的服务器 免密登录 b服务器

 如若不是root用户,而是b服务器的普通用户  免密登录


        在a服务器
        1.         ssh-keygen  
        2.         ssh-copy-id 服务器bb的ip 
		保存在b服务器的 /root/.ssh/authorized_keys文件中

        3. 在b服务器,将生成的此文件移动到   普通户的 /home/用户名/.ssh/ 
        4.		cd  /root/.ssh/
        5.		cp authorized_keys /home/用户名/.ssh  
        6. 		chmod 644 /home/用户名/.ssh/authorized_keys       即 公钥644权限
        7.    此用户就可以免密登录 ssh和sftp了
        8. 
		

2、创建SfTP 账号 访问服务器 指定目录

1 创建用户

  //useradd 用户名
  useradd tenx
  
 //echo teykt@2020 | passwd --stdin 用户名  
  echo teykt@2020 | passwd --stdin tenx  
   //注意: 密码为  teykt@2020   组名等于用户名tenx


	//看看有没有设置成功	
	groups 用户名
	groups tenx




2 或者
useradd 用户名

passwd 用户名  





// 将用户加入组中
gpasswd -a 用户名 组名  		//gpasswd -a test test2     将用户test加入到test2组	
	
groupadd 组名  				 //创建组
usermod -g  组名     用户名   //修改用户的主组
usermod -G  从组名   用户名 	//修改用户的从组,可以多个,组名之间使用逗号隔开

gpasswd  -d  用户名  组名  	//将用户从从组中删除




//看看有没有设置成功
groups 用户名


			

3 更改sshd_config文件
vi /etc/ssh/sshd_config
	添加一以下内容:




Match group tenx  #允许用户访问的目录,此处我们设置用户的组		
ChrootDirectory /usr/treatment_payment/sftp  #指定用户被锁定到的那个目录,为了能够chroot成功,该目录必须属主是root,并且其他用户或组不能写
X11Forwarding no       # #禁止X11转发
AllowTcpForwarding no   ##禁止tcp转发
ForceCommand internal-sftp  # #指定sftp命令,不能ssh连接




//Match group 组名	
//此处设置控制的组	  即所有在该组下的用户的根目录 都是下面的	ChrootDirectory配置的目录
//多个用户,每个用户需要设置不同目录,可用以下方法:
//也可以设置用户  多个用户请重复配置这两行:
Match user sftp2
ChrootDirectory /home/user/sftp2

				
				
				
									
##1  注释掉此行
		# Subsystem     sftp    /usr/libexec/openssh/sftp-server 	
##2  并在其下面添加一下行
		Subsystem sftp internal-sftp 				
##3   然后
		systemctl restart sshd
			
		
			
			
			
4 设置允许用户访问目录的权限
		
	

//chown  更改文件夹的拥有者 和组   
//将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;
//组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。
//系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限
//chown [选项]... [所有者][:[组]] 文件...


//chown 用户名或者用户ID:组名或者组ID  文件夹路径
// chown -R 用户:组   文件夹   联应用到目录里的所有子目录和文件

chown root:tenx /usr/treatment_payment/sftp 



5  修改文件夹的权限
// chmod 755 文件夹 
// chmod -R 755 文件夹 
//  -R 是指级联应用到目录里的所有子目录和文件


chmod 755 /usr/treatment_payment/sftp 


//  chmod ugoa+rwx  文件夹   修改文件夹的权限
 // chmod u+rwx /usr/treatment_payment/sftp
 
		
#usermod tenx -s /sbin/nologin 	#设置该sftp账号不允许登录


# 重启sshd	
	
systemctl restart sshd
		
		systemctl start sshd    启动
		systemctl status sshd   状态
		systemctl restart sshd  重启
		
		

6 设置用户上传文件权限
		
		[root@localhost ~]]# 	mkdir /usr/treatment_payment/sftp/send
		
		//chown 用户名或者用户ID:组名或者组ID  文件夹路径
		[root@localhost ~]]# 	chown -R tenx:tenx /usr/treatment_payment/sftp/load
		
		//setfacl -m g:组名:rwx /usr/treatment_payment/sftp/load
		//setfacl -m u:用户名:rwx /usr/treatment_payment/sftp/load
		[root@localhost ~]]# 	setfacl -m u:tenx:rwx /usr/treatment_payment/sftp/load
		


			查看

		[root@localhost ~]]# 	getfacl /usr/treatment_payment/sftp/load
		getfacl: Removing leading '/' from absolute path names
		# file: home/tenx/
		# owner: root
		# group: root
		user::rwx
		user:tenx:rwx
		group::r-x
		mask::rwx
		other::r-x
		


7 sftp连接服务器  


	#sftp 用户名@服务器ip      
	sftp ndykt@192.168.7.3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值