建立SFTP共享账户

建立SFTP共享账户
Create SFTP share account

做学术的时候往往需要交流数据。目前最安全简便的解决方案是用SFTP传输文件协议。
为此,需要配置Linux服务器,并为学术伙伴建立一个不能登录、只能用SFTP的账号。

下面是步骤:

1. 建立用户组

addgroup --system filetransfer

2. 设定用户目录和相应权限
以用户名username为例:

mkdir /home/username
mkdir /home/username/data
chown root:root /home/username
chown username:filetransfer /home/username/data
chmod 755 /home/username
chmod 700 /home/username/data

权限755可以允许sftp用户登录到其HOME目录/home/username
权限700可以防止上传的数据被其他用户访问

3. 建立用户

useradd -d /home/username -s /usr/lib/sftp-server -M -N -g filetransfer username

-d 指定HOME目录
-s 指定登录shell
-M 不创建HOME目录
-N 不创建以username为名的 用户组
-g 指定user group

4. 配置ssh

打开 /etc/ssh/sshd_config

见到这行之后:Subsystem sftp /usr/lib/openssh/sftp-server
改称:Subsystem sftp internal-sftp
然后在末尾加上:

Match group filetransfer
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

5. 配置登录shell

在/etc/shells末尾加上一行:

/usr/lib/sftp-server

6. 最后重启ssh 服务器就好了

service ssh restart