Ubuntu搭建SFTP服务器

Ubuntu默认只安装openssh-client,须要手动安装openssh-server或者sftp-server。web

安装SFTP服务

# sudo apt-get install sftp-server
sudo apt-get install openssh-server

容许root登陆

SSH默认不容许root用户登陆,输入以下命令修改ssh配置文件,以容许root用户登陆。shell

sudo vim /etc/ssh/sshd_config

寻找配置文件的如下内容:vim

#PermitRootLogin prohibit-password

修改成以下配置:服务器

PermitRootLogin yes

用户配置

默认容许全部用户或者用户组登陆,若仅容许指定用户或者用户组访问,按照如下格式配置。ssh

AllowUsers 多个用户(以空格间隔)
AllowGroups 多个用户组(以空格间隔)

单独配置指定用户或者用户组,而且覆盖全局配置。svg

Match User 用户
Match Group 用户组
# 禁止TCP转发
AllowTcpForwarding no
# 禁止X11转发
X11Forwarding no

若是想了解配置项含义,使用以下命令查看说明文档。spa

man sshd_config

重启SSH

输入如下命令,重启SSH,使配置生效。rest

/etc/init.d/ssh restart

链接命令

Ubuntu的SFTP客户端使用如下命令链接服务器。code

sftp -p root@192.168.0.101

PuTTY的psftp.exe使用如下命令链接服务器。server

psftp root@192.168.0.101

或者先执行psftp.exe,再输入如下命令:

open 192.168.0.101

传输命令

# 上传文件
put 源路径 目的路径
# 下载文件
get 源路径 目的路径

用户必须具备所访问目录或者文件的写权限,不然上传文件出错。
例如使用WinSCP上传文件,却不具备写权限,出现如下错误:

Write failed: Broken pipe Couldn’t read packet: Connection reset by peer