一聚教程网:一个值得你收藏的教程网站

linux sshd上创建仅可sftp登陆的用户,用sftp代替ftp

时间:2016-07-04 00:00:00 编辑:简简单单 来源:转载

当远程登陆Linux服务器时最常用的ssh而ssh服务是由sshd提供,并且sshd还提供sftp功能。

在这里用户sftp-admin,仅能sftp连接服务器而不能ssh连接服务器。

sftp连接:OK
ssh连接:NG

创建sftp-admin用户

创建根目录为/var/www/html,组为apache的sftp-admin用户。

# useradd -d /var/www/html -s /bin/bash sftp-admin -g apache
# passwd sftp-admin

修改sshd_config文件

以下是去掉注释部分以后的/etc/ssh/sshd_config文件样本。

Port 38080 -> sshd默认端口是22在这里改为38080

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

SyslogFacility AUTHPRIV
PermitRootLogin no -> 禁止root用户直接登陆服务器
DenyUsers toor administrator administrateur admin adm test guest info mysql user oracle

AuthorizedKeysFile      .ssh/authorized_keys

PasswordAuthentication yes
ChallengeResponseAuthentication no


GSSAPICleanupCredentials no

X11Forwarding yes
UsePrivilegeSeparation sandbox

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

Subsystem       sftp    /usr/libexec/openssh/sftp-server ->指定提供sftp服务的进程

Match User sftp-* ->当用户名为sftp-开始时仅能sftp登陆
       ForceCommand internal-sftp
在这里最重要的是以下的部分,而其余的部分可使用默认配置。

Subsystem       sftp    /usr/libexec/openssh/sftp-server

Match User sftp-*
       ForceCommand internal-sftp

重启sshd

# service sshd restart

文章评论

热门栏目