Linux系统中sftp配置之密钥方式登录

由于vsftp采用明文传输,用户名密码可通过抓包得到,为了安全性,需使用sftp,锁定目录且不允许sftp用户登到服务器。由于sftp使用的是ssh协议,需保证用户只能使用sftp,不能ssh到机器进行操作,且使用密钥登陆、不是22端口。

1. 创建sftp服务用户组,创建sftp服务根目录

groupadd sftp
#此目录及上级目录的所有者必须为root,权限不高于755,此目录的组最好设定为sftp
mkdir /data/sftp
chown -R root:sftp /data/sftp
chmod -R 0755 /data/sftp

2. 修改sshd配置文件

cp /etc/ssh/sshd_config,_bk}  #备份配置文件
sed -i 's@#Port 22@Port 22@' /etc/ssh/sshd_config  #保证原来22端口可以
vi /etc/ssh/sshd_config
注释掉/etc/ssh/sshd_config文件中的此行代码:
Subsystem      sftp    /usr/libexec/openssh/sftp-server
添加如下代码:
Port 2222
Subsystem sftp internal-sftp -l INFO -f AUTH
Match Group sftp
ChrootDirectory /data/sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -l INFO -f AUTH
凡是在用户组sftp里的用户,都可以使用sftp服务;使用sftp服务连接上之后,可访问目录为/data/sftp/username
举个例子:
test是一个sftp组的用户,它通过sftp连接服务器上之后,只能看到/data/sftp/test目录下的内容
test2也是一个sftp组的用户,它通过sftp连接服务器之后,只能看到/data/sftp/test2目录下的内容

3. 创建sftp用户

#此例将创建一个名称为test的sftp帐号
#创建test sftp家目录:test目录的所有者必须是root,组最好设定为sftp,权限不高于755
mkdir /data/sftp/test
chmod 0755 /data/sftp/test
chown root:sftp /data/sftp/test
useradd -g sftp -s /sbin/nologin test  #添加用户,参数-s /sbin/nologin禁止用户通过命令行登录
创建test用户密钥对:
# mkdir /home/test/.ssh
# ssh-keygen -t rsa
# cp /root/.ssh/id_rsa.pub /home/test/.ssh/authorized_keys
# chown -R test.sftp /home/test
在test目录下创建一个可以写的upload目录
mkdir /data/sftp/test/upload
chown -R test:sftp /data/sftp/test/upload
注:sftp服务的根目录的所有者必须是root,权限不能超过755(上级目录也必须遵循此规则),sftp的用户目录所有者也必须是root,且最高权限不能超过755。

4. 测试sftp

service sshd restart
test用户密钥登陆如下图:

时间: 2024-09-14 22:28:31

Linux系统中sftp配置之密钥方式登录的相关文章

linux系统中安装配置LAMP服务器(Apache+PHP+MariaDB)RHEL 7.0

准备篇: RHEL 7.0系统安装配置图解教程我在此就不介绍了 一.使用系统镜像文件配置本地yum源 1.使用WinSCP.exe等工具上传系统镜像文件rhel-server-7.0-x86_64-dvd.iso到/usr/local/src目录 2.使用Putty.exe工具远程连接到RHEL服务器 3.挂载系统镜像文件 mkdir /media/cdrom #新建镜像文件挂载目录 cd /usr/local/src #进入系统镜像文件存放目录 ls #列出目录文件,可以看到刚刚上传的系统镜像

Linux系统中NFS配置与参数详解

NFS 是 Network File System 的简写,即网络文件系统. 网络文件系统是 Linux 支持的文件系统中的一种,也被称为NFS.NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. 下面来介绍一下 NFS 的配置. 假设有2台 Linux 服务器,IP地址分别为 192.168.0.1 和 192.168.0.2,我们希望将 192.168.0.1 作为 Server 端,把其 /home/public 目录共享

详解Linux系统中安装配置Samba服务器的步骤

  一.获取源代码包并进行解压 从samba的官方网站可以下载最新的samba源代码包.下面我们以samba-3.5.9.tar.gz的源代码包作为案例进行解析.本例中,我们将源代码包放在目录/home/samba下,然后执行下面的命令进行解压缩. 代码如下: # tar –xzvf samba-3.5.9.tar.gz 二.配置configure 对源代码包进行解压缩后,进入目录 代码如下: # cd /home/samba/samba-3.5.9/source3 然后执行下面的命令进行配置.

linux系统中网卡配置详解

文件:/etc/sysconfig/network-scripts/ifcfg-eth0 以下各值常见于所有的基本配置文件中: * DEVICE=name,这里name是物理设备的名字(动态分配的PPP设备应当除外, 它的名字是"逻辑名". * IPADDR=addr, 这里addr是IP地址. * NETMASK=mask, 这里mask是网络掩码. * NETWORK=addr, 这里addr是网络地址. * BROADCAST=addr, 这里addr是广播地址. * GATEW

VPN服务器在Linux系统中的配置方法

VPN的英文全称是"Virtual http://www.aliyun.com/zixun/aggregation/33969.html">Private Network",翻译过来就是"虚拟专用网络".顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线.它可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的

linux系统中安装配置redis图文详解

1. 首先下载一个redis安装包,可以去官网下载最新版:http://redis.io/download.     2. 在linux下解压redis:tar zxvf redis-2.8.22.tar.gz    3. 解压完成之后,进入到解压的目录"redis-2.8.22",命令为:cd redis-2.8.22.    4. 执行 make MALLOC=libc 命令,如果出现"/bin/sh: cc: command not found "之类的错误,

Linux系统中手动配置你的MRTG文件

MRTG中的cfgmaker程序只能网络接口创建配置文件,并且同时监听两种对象标识:网卡的上行和下行流量的统计数据.然后它根据配置文件来决定在数据目录中记录哪种数据.indexmaker也利用这些配置文件来创建概述文件,或者说是你正在监听的MIB对象标识的Summary View Web页. Summary View Web页只显示每天的统计数据.你可以选择Summary View图表来得到每日,每周,每月和每年的图表.配置文件中的一些参数是和Detailed View有关的,其它的则和Summ

Linux系统中如何配置ssh连接保持与重用

保持 用终端登录远程开发机coding,应该是大多数程序猿年复一年的工作,但悲剧的是终端会你跟美女测试聊天的一瞬间断开了,所幸的是ssh提供了连接保持 命令ServerAliveInterval,只需要新建文件~/.ssh/config并输入如下命令即可: ServerAliveInterval 60 这样ssh会每60秒发送一个KeepAlive请求,保证终端不会因为超时空闲而断开连接. 重用 如果你用mac本的话,很不方便的是没有clone功能,新窗口时需要重新输入繁琐的用户名和密码,对于经

在 Linux 系统中安装Load Generator ,并在windows 调用

原文地址:http://www.blogjava.net/qileilove/archive/2012/03/14/371861.html 由于公司需要测试系统的最大用户承受能力,所以需要学习使用loadrunner.在安装的时候碰到了不少问题,所以写下此文章总结遇到的问题以及解决方案,希望能帮到大家.也希望大家转载注明出处. Winsows 的Loadrunner 安装就不多讲了,这个太容易了. 以下是Linux 中安装 Load Generator 说明: Linux 系统版本:CentOS