要通过SFTP(SSH File Transfer Protocol)登录服务器,用户需要具备服务器访问权限,并使用支持SFTP的客户端工具进行连接,以下是详细的操作步骤、注意事项及相关配置说明,帮助用户顺利完成SFTP登录及文件传输操作。

SFTP登录前的准备工作
-
确认服务器信息
需要获取以下关键信息:- 服务器IP地址或域名:
168.1.100或ftp.example.com。 - 端口号:默认为
22,若服务器修改过端口需使用自定义端口(如2222)。 - 用户名和密码:用于身份验证的账户凭据。
- 密钥文件(可选):若使用SSH密钥认证,需准备私钥文件(如
id_rsa)。
- 服务器IP地址或域名:
-
安装SFTP客户端工具
- Windows系统:推荐使用
FileZilla、WinSCP或命令行工具OpenSSH(需通过设置启用)。 - macOS/Linux系统:可直接使用终端内置的
sftp命令,或安装FileZilla等图形化工具。
- Windows系统:推荐使用
-
网络连通性检查
确保本地网络可访问服务器,可通过ping或telnet测试端口:telnet 192.168.1.100 22
若显示“Connected to…”则表示网络正常。
通过命令行登录SFTP服务器
基本登录命令
sftp username@server_ip
sftp john@192.168.1.100
输入密码后,若登录成功,将显示 sftp> 提示符。

指定端口登录
若端口非默认值,需通过 P 参数指定:
sftp P 2222 john@192.168.1.100
使用SSH密钥登录
若服务器配置了密钥认证,需通过 i 指定私钥路径:
sftp i /home/user/.ssh/id_rsa john@192.168.1.100
登录后的常用命令
登录成功后,可通过以下命令操作文件:
| 命令 | 功能示例 |
|||
| ls | 列出当前目录文件 |
| cd /path | 切换到指定目录 |
| get file.txt | 下载文件到本地 |
| put local_file.txt | 上传本地文件到服务器 |
| mkdir new_dir | 创建新目录 |
| rm file.txt | 删除文件 |
| exit | 退出SFTP会话 |
通过图形化工具登录(以FileZilla为例)
-
新建站点
打开FileZilla,点击“文件”→“站点管理器”→“新建站点”,填写以下信息:- 协议:选择
SFTP。 - 主机:输入服务器IP或域名。
- 端口:默认
22,若修改需填写实际端口。 - 用户名:输入服务器账户名。
- 密码:输入账户密码(或选择“密钥”并上传私钥文件)。
- 协议:选择
-
连接服务器
点击“连接”,若信息正确,右侧面板将显示服务器文件目录,左侧为本地文件目录,可直接拖拽传输文件。
常见问题及解决方法
-
登录失败提示“Permission denied”
- 原因:用户名或密码错误;服务器账户被限制SFTP权限。
- 解决:
- 确认用户名和密码无误。
- 检查服务器
/etc/ssh/sshd_config配置文件,确保Subsystem sftp行未被注释。 - 确认用户所属组是否有访问
/home/username目录的权限(通常需设置为username:username和权限755)。
-
连接超时或无法建立链接
- 原因:服务器防火墙阻止端口;网络问题;SSH服务未运行。
- 解决:
- 检查服务器防火墙规则,开放
22端口(或自定义端口)。 - 使用
systemctl status sshd检查SSH服务状态,未运行则执行systemctl start sshd启动。 - 若使用云服务器,需在安全组中添加入站规则允许SFTP端口访问。
- 检查服务器防火墙规则,开放
安全建议
- 禁用密码登录:服务器配置中设置
PasswordAuthentication no,强制使用SSH密钥认证。 - 修改默认端口:将
sshd_config中的Port 22改为其他端口号(如2222),减少自动化攻击风险。 - 限制登录用户:在
sshd_config中添加AllowUsers username1 username2,仅允许指定用户登录。
相关问答FAQs
问题1:SFTP和FTP有什么区别?
答:SFTP(SSH File Transfer Protocol)是基于SSH的安全文件传输协议,所有数据均经过加密,适合敏感文件传输;而FTP(File Transfer Protocol)是传统协议,数据以明文传输,安全性较低,SFTP使用单个端口(默认22),而FTP需使用端口21(控制)和20(数据传输),且防火墙配置更复杂。
问题2:如何批量上传文件到SFTP服务器?
答:可通过以下方式实现:
- 命令行:使用
mput命令上传多个文件(支持通配符,如mput *.txt)。 - 脚本自动化:编写Shell脚本结合
sftp命令,echo "put file1.txt file2.txt" | sftp username@server_ip
- 图形化工具:在FileZilla中按住
Ctrl键选择多个文件后拖拽至服务器目录。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/300498.html