Linux 下sftp配置之密钥方式登录详解

 更新时间:2016年12月27日 14:49:12   投稿:lqh  
这篇文章主要介绍了Linux 下sftp配置之密钥方式登录详解的相关资料,为了安全性,需使用sftp,锁定目录且不允许sftp用户登到服务器,需要的朋友可以参考下

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用户密钥登陆如下图:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 在CoreOS上搭建一个WordPress程序操作实例

    在CoreOS上搭建一个WordPress程序操作实例

    你可能听过服务器操作系统CoreOS的名字,那你试过在上面建立个小程序么?今天,我们就来手把手地教你建立一个简单的WordPress程序
    2014-03-03
  • .htaccess使用方法总结

    .htaccess使用方法总结

    在利用.htaccess的Rewrite规则实现Discuz论坛的伪静态链接中已经提到过了.htaccess的重定向的使用,这里让我们来比较全面的了解一下.htaccess吧。
    2010-12-12
  • Linux中的进程状态和优先级

    Linux中的进程状态和优先级

    这篇文章主要介绍了Linux中的进程状态和优先级方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • linux adsl 拨号自动配置脚本的方法

    linux adsl 拨号自动配置脚本的方法

    本篇文章主要介绍了linux adsl 拨号自动配置脚本的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Linux虚拟机中node.js之开发环境搭建

    Linux虚拟机中node.js之开发环境搭建

    这篇文章主要介绍了Linux虚拟机中node.js之开发环境搭建,有需要的朋友可以了解一下。
    2016-11-11
  • 如何在Centos 7快速开启端口

    如何在Centos 7快速开启端口

    最近将CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面这篇文章将给大家介绍如何在Centos 7中使用firewalld快速开发端口,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • Linux VPS配置Web网站环境一键包(LNMP/LAMP/LNMPA)

    Linux VPS配置Web网站环境一键包(LNMP/LAMP/LNMPA)

    如果我们是资深Linux用户,可能不屑于网上免费Linux Web一键包、管理面板的安装,然后自己编译或者自由的一套环境安装配置环境。但是,对于大部分用户而言,麦子个人建议还是选择较为成熟的WEB一键包或者面板安装环境
    2017-02-02
  • linux下如何切割大文件

    linux下如何切割大文件

    这篇文章主要介绍了linux下如何切割大文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Linux中如何为pip安装添加代理

    Linux中如何为pip安装添加代理

    这篇文章主要介绍了Linux中如何为pip安装添加代理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Apache虚拟目录配置及vue-cli反向代理的设置方法

    Apache虚拟目录配置及vue-cli反向代理的设置方法

    本篇文章主要介绍了Apache虚拟目录配置及vue-cli反向代理的设置方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09

最新评论