要通过 SFTP 访问 Linux 目录,常见方式有以下几种,从命令行到图形工具都有。下面按使用场景详细说明。
sftp 用户名@服务器IP
示例:
sftp root@192.168.1.100
连接成功后会进入 sftp> 交互模式。
pwd # 查看当前远程目录
ls # 查看当前目录内容
cd /var/www # 切换到远程 Linux 目录
示例:
sftp> cd /home
sftp> ls
get 文件名
get -r 目录名
示例:
get test.txt
get -r /var/log/nginx
put 文件名
put -r 目录名
示例:
put localfile.txt
put -r ./config
lpwd # 查看本地当前目录
lls # 查看本地文件
lcd ~/Downloads # 切换本地目录
sftp -P 2222 user@ip
⚠️ 注意:
-P 是大写(和 scp 不一样)sftp -i ~/.ssh/id_rsa user@ip
前提:
# 本地生成密钥
ssh-keygen
# 拷贝公钥到服务器
ssh-copy-id user@ip
配置方式:
sudo vim /etc/ssh/sshd_config
添加或修改:
Subsystem sftp internal-sftp
Match User sftpuser
ChrootDirectory /data/sftp
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
sudo chown root:root /data/sftp
sudo chmod 755 /data/sftp
用户可写目录:
sudo mkdir /data/sftp/upload
sudo chown sftpuser:sftpuser /data/sftp/upload
ChrootDirectory 必须是 root 拥有| 需求 | 方式 |
|---|---|
| 访问 Linux 目录 | sftp user@ip |
| 切换目录 | cd /path |
| 上传/下载 | put / get |
| 免密登录 | SSH 密钥 |
| 限制目录 | ChrootDirectory |
如果你愿意,可以告诉我:
我可以给你更精确的配置示例。